Updating a CSS variable within styled components using a React prop

I have been utilizing CSS grid to generate a flexible table with varying columns and rows that are determined by props from a parent component in React.

Is there a way to update a CSS variable within a styled component (emotion) with the data received from React props?

Answer №1

Check out the documentation for more information:

// Defining an Input component to style an HTML input tag
const Input = styled.input`
  padding: 0.5em;
  margin: 0.5em;
  color: ${props => props.inputColor || "palevioletred"};
  background: papayawhip;
  border: none;
  border-radius: 3px;
`;

// Rendering two styled text inputs, one with default input color and another with custom input color
render(
  <div>
    <Input defaultValue="@probablyup" type="text" />
    <Input defaultValue="@geelen" type="text" inputColor="rebeccapurple" />
  </div>
);

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Top choice for React with TypeScript CodeMirror integration

Seeking recommendations for a package that seamlessly integrates with typescript in an existing react application. Specifically, looking to implement codeMirror functionality. Any suggestions? ...

Encounter an Error: Received undefined or Promise { <pending> } while attempting to add an element to an array

Having issues adding to an array in a server-side rendered page using the code below. let categories = [] categories = await axios.get(`http:/.../${price_list_name}`).then(res => { return res.data }) const child_categories = ca ...

Select the top row of a table when the checkbox is ticked to emphasize it

Previously, I tackled a challenge on a webpage using jQuery where checkboxes in a table needed to be selected based on specific data attributes. Essentially, if one checkbox in a row was selected, the rest of the checkboxes would be disabled if their data ...

npm encountered a premature closure

I recently purchased and started using a ReactJS template which you can check out here My goal is to install all the dependencies by running npm install in the root directory of the template (React-App) However, I encountered an ERROR message like this: ...

Contrasts in padding arrangements between Firefox and other browsers

Take a look at the following code snippet: https://jsfiddle.net/a13nd32u/3/ #post_part{display:inline;padding:6px 9px;float:right;font-size:15px} select{width:80px;height:21px;padding-right:10px;display:inline} #button1{display:inline;padding-left:10px} ...

Tips for handling a variable that could potentially be an array or a single React component

I'm diving into React for the first time and working on creating a user survey. I'm currently dealing with checkboxes in this component, which I find a bit challenging. My goal is to have the user select 2 options and then separate them with a co ...

Customizing styles in Material UI by utilizing the Root component and the ClassName attribute

Exploring material UI for the first time has been quite enlightening. One interesting discovery I made is that styles in material UI can be customized by using the rule names of classes. For instance, if there's an element like MenuItem where I only ...

Differences in the way websites scroll on Chrome compared to Safari and Firefox

Currently, I am in the process of developing a rendering system for my application that extracts objects from a collection and processes them through JavaScript templates to generate additional children as the user scrolls through the page. The system is d ...

Create a stylish border around an ion-card using a sleek black bar

I have a card element with a title and subtitle, and I want to add a black bar above the header. <ion-list> <ion-card (click)="onEventClick(event.id)" *ngFor="let event of events"> <ion-card-header> ...

Discover the process of changing a prop with a button click in NextJS

In my NextJs project, I have a video player component that displays videos using a {videoLink} prop: <ReactPlayer playing={true} controls={true} muted={true} loop={true} width="100" height="100" url={videoLinkDeep} poster="ima ...

State of cart is currently empty, local storage fails to reflect product quantity changes, utilizing redux as a potential solution

I am experiencing an issue with my state where the cart appears empty. When I add a new product, the state's cartItem[] is empty and does not display previous items. Similarly, state.cartItems is also an empty array when retrieved from useSelector(). ...

What can be done to stop Bootstrap columns from shifting positions or stacking on top of each other unexpectedly?

I'm currently working on a testimonial section for my project. The challenge I'm facing is that the content within the 4 divs is not evenly distributed. As a result, when I try to adjust the width of the screen and expect them to align in a 2-2 f ...

Troubleshooting React using breakpoints: A step-by-step guide

Currently I am working with Chrome and facing an issue. For instance, I require Component.jsx and want to set a breakpoint at a specific location. When I press F12, navigate to the Sources tab, and use Ctrl+P to search, I only find 1.chunk.js, bundle.js, ...

Restoring the background color to its original shade following alterations made by jQuery

In my table, I have multiple rows with alternating white and grey backgrounds achieved through CSS. .profile tr:nth-child(odd) { background:#eee; } .profile tr:nth-child(even) { background:none; } However, I now want to allow users to select a row ...

Is there a more efficient method for providing hooks to children in React when using TypeScript?

My component structure looks something like this: Modal ModalTitle ModalBody FormElements MySelect MyTextField MyCheckbox DisplayInfo ModalActions I have a state variable called formVars, and a function named handleAction, ...

Deleting specialized object using useEffect hook

There's a simple vanilla JS component that should be triggered when an element is added to the DOM (componentDidMount) and destroyed when removed. Here's an example of such a component: class TestComponent { interval?: number; constructor() ...

Protected Bootstrap Environment

Bootstrap is an amazing tool, but it tends to enforce too many opinions. The selectors used in its rules are quite broad, such as input or label. Is there a method to isolate Bootstrap's CSS so that it only impacts elements within a container with a ...

Changing date format in Mui DatePicker

I need some assistance with customizing the mui DatePicker. Specifically, I would like to set the date format to display as Day, DD Month. For example: Monday, 10 September Below is the code snippet I am currently working with: <LocalizationProvider d ...

Resetting React Hooks state - Easily reverting it back to its original value once a dialog has been shown

After creating a dialog component that functions properly, I encountered an issue where it cannot be reopened once closed by clicking the same button. It seems like there might be a problem with how I am utilizing hooks state and initializing the state. B ...

Ways to conceal CSS on the page when triggering a different element

I am trying to achieve the functionality of hiding the black arrow when clicking on the green arrow, all without using jQuery. Here is my fiddle: http://jsfiddle.net/t5Nf8/195/ html: <div class="arrow-down"></div> <div class="arrow-up"> ...