Before and After pseudo classes used with styled-components Before and After pseudo classes used with styled-components reactjs reactjs

Before and After pseudo classes used with styled-components


Pseudo-selectors in styled-components work just like they do in CSS. (or rather, Sass) Whatever isn't working is likely a problem in your specific code, but that's hard to debug without seeing the actual code!

Here is an example of how to use a simple :after:

const UnicornAfter = styled.div`  &:after {    content: " 🦄";  }`;<UnicornAfter>I am a</UnicornAfter> // renders: "I am a 🦄"

If you post your code I'll likely be able to help debug your specific issue!


This will print the triangle at middle of the div.

const LoginBackground = styled.div`  & {    width: 30%;    height: 75%;    padding: 0.5em;    background-color: #f8d05d;    margin: 0 auto;    position: relative;  }  &:after {    border-right: solid 20px transparent;    border-left: solid 20px transparent;    border-top: solid 20px #f8d05d;    transform: translateX(-50%);    position: absolute;    z-index: -1;    content: "";    top: 100%;    left: 50%;    height: 0;    width: 0;  }`;


This is good and simple answer:

https://stackoverflow.com/a/45871869/4499788 by mxstbr

but for elements requiring more complex logic I prefer this approach:

const Figure = styled.div`  ${Square}:before,   ${Square}:after,  ${Square} div:before,   ${Square} div:after {    background-color: white;    position: absolute;    content: "";    display: block;    -webkit-transition: all 0.4s ease-in-out;    transition: all 0.4s ease-in-out;  }`;