Home > Back-end >  Create dynamic tags with Styled Components
Create dynamic tags with Styled Components

Time:06-25

Is there a way to create a dynamic tag using styled-components? For example:

const MyComponent = styled(CustomTag)``;

<MyComponent element="h1" />

CodePudding user response:

You can use as prop by default on components created with styled-components. If in your example CustomTag is also a styled-component that styles a native element (e.g.:)

const CustomTag = styled.h1`
  color: red;
`;

then you can do

const MyComponent = styled(CustomTag)`
  font-size: 64px;
`;

<MyComponent as="span">Something</MyComponent>

and you'll end up with a <span> tag with font-size of 64px and red text color. Of course you can also use as prop on CustomTag so you don't necessarily need MyComponent.

CodePudding user response:

Maybe this will help you:

Add you code in your typescript

class Test extends HTMLElement {
    connectedCallback() {
        this.innerHTML = `<h1>Hello World...</h1>`;
        this.style.color = "red";
    }
}

customElements.define('test', Test);

after compiling refer the js file in you HTML and you can use it like <test></test>

  • Related