
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Simple and powerful lib to handle styled props in your components
yarn add styled-by
import React from 'react';
import styled from 'styled-components';
import styledBy from 'styled-by';
const Button = styled.button`
background: ${styledBy('background')};
color: ${styledBy('color')};
padding: 10px;
border-radius: 10px;
`;
export default function App() {
return (
<Button background="#FFF" color="rgba(0,0,0,0.5)">
Ok
</Button>
);
}
Basicaly, if you use styledBy('prop')
, it returns prop value. But, if you want do more, use options.
Options can be:
Option as string, will be applied when prop is present.
const Button = styled.button`
${styledBy('disabled', 'background: #CCC;')}
`;
<Button disabled />
Option as function, always will be called passing props, even if props is undefined
const Button = styled.button`
${styledBy('disabled', props => `background: ${props.disabled ? '#CCC' : '#FFF'};`)}
`;
<Button disabled />
Option as object string, will be handled by prop value
const Button = styled.button`
${styledBy('corner', {
rounded: `border-radius: 5px;`,
circle: `border-radius: 100px;`
})}
`;
<Button corner="rounded" />
When option is a object, and styledBy don't find passed option, and if _
option is defined as a function, call it.
const Button = styled.button`
${styledBy('corner', {
_: ({ corner }) => {}
rounded: `border-radius: 5px;`,
circle: `border-radius: 100px;`
})}
`;
<Button corner="square" />
Option as object function, will be handled by prop value, and call function as prop param
const Button = styled.button`
${styledBy('kind', {
default: ({ theme, color }) => `
background: ${theme.colors[color].base};
color: ${theme.colors[color].contrast};
border: none;
`,
outline: ({ theme, color }) => `
background: transparent;
color: ${theme.colors[color].base};
border: 1px solid ${theme.colors[color].base};
`,
clean: ({ theme, color }) => `
background: transparent;
color: ${theme.colors[color].base};
border: none;
`
})}
`;
<Button color="primary" kind="outline" />
Instead of prop name in firts param, you can pass many options as a object
const Button = styled.button`
${styledBy({
disabled: `background: #CCC;`,
corner: {
square: 'border-radius: 0;',
rounded: 'border-radius: 5px;',
circle: 'border-radius: 50px;'
}
})}
`;
This works like many styledBy props declarations
MIT © Bruno Bertolini
FAQs
Simple and powerful lib to handle styled props in your components
The npm package styled-by receives a total of 783 weekly downloads. As such, styled-by popularity was classified as not popular.
We found that styled-by demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.