This is a lightweight (and low level) CSS utilities library aimed at simplifying and standardizing common CSS patterns. It provides a utility function for generating CSS properties and values dynamically.
Installation
This library is implemented in both TypeScript and PHP. You can install the TypeScript version via npm:
and the PHP version via composer:
composer require lnear/marco
Usage
import { replace } from " @lnear/marco " ;
This will generate the following CSS string:
transition-property : color , background-color, border-color,
text-decoration-color, fill , stroke ;
transition-timing-function : cubic-bezier ( 0.4 , 0 , 0.2 , 1 );
transition-duration : 150 ms ;
transition-property : none ;
filter : drop-shadow ( 0 20 px 13 px rgb ( 0 0 0 / 0.03 )) drop-shadow (
0 8 px 5 px rgb ( 0 0 0 / 0.08 )
You can also use the generateCSS
function to generate CSS strings for web components (or any other scoped style engine that supports :host
) with multiple macros:
import { generateCSS } from " @lnear/marco " ;
sm: " div { color: red; } " ,
md: " div { color: green; } " ,
lg: " div { color: blue; } " ,
xl: " div { color: yellow; } " ,
xl2: " div { color: pink; } " ,
dark: " div { color: black; } " ,
light: " div { color: white; } " ,
macros: " sm:md:lg:xl:xl2:dark:bg-red-500 " ,
or the generate
method of the Marco
class in PHP:
sm: ' div { color: red; } ' ,
md: ' div { color: green; } ' ,
lg: ' div { color: blue; } ' ,
xl: ' div { color: yellow; } ' ,
xl2: ' div { color: pink; } ' ,
dark: ' div { color: black; } ' ,
light: ' div { color: white; } ' ,
macros: ' sm:md:lg:xl:xl2:dark:bg-red-500 ' ,
Both will generate the following CSS string:
@ media ( min-width : 640 px ) {
background-color : rgb ( 239 68 68 );
@media ( min-width : 768 px ) {
background-color : rgb(239 68 68 );
@media ( min-width : 1024 px ) {
background-color : rgb(239 68 68 );
@media ( min-width : 1280 px ) {
background-color : rgb(239 68 68 );
@media ( min-width : 1536 px ) {
background-color : rgb(239 68 68 );
@media ( prefers-color-scheme: dark ) {
background-color : rgb(239 68 68 );
@media ( min-width : 640 px ) {
@media ( min-width : 768 px ) {
@media ( min-width : 1024 px ) {
@media ( min-width : 1280 px ) {
@media ( min-width : 1536 px ) {
@media ( prefers-color-scheme: dark ) {
@media ( prefers-color-scheme: light ) {
More docs coming soon…
Patterns
The below are the predefined patterns that can be used with the replace
function. It is not an exhaustive list and intutive patterns are implemented as needed.
For example, only “saturate-(0, 50, 100, 150, 200)” are documented here, but any value can be used with the “saturate” pattern. (saturate-x where x is a number will be replaced with “filter: saturate({x / 100});“)
View Patterns
drop-shadow
filter : drop-shadow(0 1px 2px rgb(0 0 0 / 0 .1 )) drop-shadow(0 1px 1px rgb(0 0 0 / 0 .06 ));
drop-shadow-sm
filter : drop-shadow(0 1px 1px rgb(0 0 0 / 0 .05 ));
drop-shadow-md
filter : drop-shadow(0 4px 3px rgb(0 0 0 / 0 .07 )) drop-shadow(0 2px 2px rgb(0 0 0 / 0 .06 ));
drop-shadow-lg
filter : drop-shadow(0 10px 8px rgb(0 0 0 / 0 .04 )) drop-shadow(0 4px 3px rgb(0 0 0 / 0 .1 ));
drop-shadow-xl
filter : drop-shadow(0 20px 13px rgb(0 0 0 / 0 .03 )) drop-shadow(0 8px 5px rgb(0 0 0 / 0 .08 ));
drop-shadow-xl2
filter : drop-shadow(0 25px 25px rgb(0 0 0 / 0 .15 ));
drop-shadow-none
filter : drop-shadow(0 0 #0000 );
backdrop-hue-rotate-0
backdrop-filter : hue-rotate(0deg );
backdrop-hue-rotate-15
backdrop-filter : hue-rotate(15deg );
backdrop-hue-rotate-16
backdrop-filter : hue-rotate(16deg );
backdrop-hue-rotate-30
backdrop-filter : hue-rotate(30deg );
backdrop-hue-rotate-60
backdrop-filter : hue-rotate(60deg );
backdrop-hue-rotate-90
backdrop-filter : hue-rotate(90deg );
backdrop-hue-rotate-180
backdrop-filter : hue-rotate(180deg );
hue-rotate-0
filter : hue-rotate(0deg );
hue-rotate-15
filter : hue-rotate(15deg );
hue-rotate-30
filter : hue-rotate(30deg );
hue-rotate-60
filter : hue-rotate(60deg );
hue-rotate-90
filter : hue-rotate(90deg );
hue-rotate-180
filter : hue-rotate(180deg );
grayscale-0
grayscale
invert-0
invert
sepia-0
sepia
backdrop-grayscale-0
backdrop-filter : grayscale(0 );
backdrop-grayscale
backdrop-filter : grayscale(100% );
saturate-0
saturate-50
saturate-100
saturate-150
saturate-200
backdrop-blur
backdrop-filter : blur(8px );
backdrop-blur-none
backdrop-filter : blur(0 );
backdrop-blur-sm
backdrop-filter : blur(4px );
backdrop-blur-md
backdrop-filter : blur(12px );
backdrop-blur-lg
backdrop-filter : blur(16px );
backdrop-blur-xl
backdrop-filter : blur(24px );
backdrop-blur-xl2
backdrop-filter : blur(40px );
backdrop-blur-xl3
backdrop-filter : blur(64px );
blur
blur-none
blur-sm
blur-md
blur-lg
blur-xl
blur-xl2
blur-xl3
backdrop-brightness-0
backdrop-filter : brightness(0 );
backdrop-brightness-50
backdrop-filter : brightness(0 .5 );
backdrop-brightness-75
backdrop-filter : brightness(0 .75 );
backdrop-brightness-90
backdrop-filter : brightness(0 .9 );
backdrop-brightness-95
backdrop-filter : brightness(0 .95 );
backdrop-brightness-100
backdrop-filter : brightness(1 );
backdrop-brightness-105
backdrop-filter : brightness(1 .05 );
backdrop-brightness-110
backdrop-filter : brightness(1 .1 );
backdrop-brightness-125
backdrop-filter : brightness(1 .25 );
backdrop-brightness-150
backdrop-filter : brightness(1 .5 );
backdrop-brightness-200
backdrop-filter : brightness(2 );
brightness-0
brightness-50
brightness-75
filter : brightness(0 .75 );
brightness-90
brightness-95
filter : brightness(0 .95 );
brightness-100
brightness-105
filter : brightness(1 .05 );
brightness-110
brightness-125
filter : brightness(1 .25 );
brightness-150
brightness-200
contrast-0
contrast-50
contrast-75
contrast-100
contrast-125
contrast-150
contrast-200
backdrop-contrast-0
backdrop-filter : contrast(0 );
backdrop-contrast-50
backdrop-filter : contrast(0 .5 );
backdrop-contrast-75
backdrop-filter : contrast(0 .75 );
backdrop-contrast-100
backdrop-filter : contrast(1 );
backdrop-contrast-125
backdrop-filter : contrast(1 .25 );
backdrop-contrast-150
backdrop-filter : contrast(1 .5 );
backdrop-contrast-200
backdrop-filter : contrast(2 );
ease-linear
transition-timing-function : linear;
ease-in
transition-timing-function : cubic-bezier(0 .4 , 0, 1, 1 );
ease-out
transition-timing-function : cubic-bezier(0, 0, 0 .2 , 1 );
ease-in-out
transition-timing-function : cubic-bezier(0 .4 , 0, 0 .2 , 1 );
timing-linear
transition-timing-function : linear;
timing-in
transition-timing-function : cubic-bezier(0 .4 , 0, 1, 1 );
timing-out
transition-timing-function : cubic-bezier(0, 0, 0 .2 , 1 );
timing-in-out
transition-timing-function : cubic-bezier(0 .4 , 0, 0 .2 , 1 );
transition-colors
transition-property : color, background-color , border-color , text-decoration-color , fill, stroke; transition-timing-function : cubic-bezier(0 .4 , 0, 0 .2 , 1 ); transition-duration : 150ms;
transition-opacity
transition-property : opacity; transition-timing-function : cubic-bezier(0 .4 , 0, 0 .2 , 1 ); transition-duration : 150ms;
transition-all
transition-property : all; transition-timing-function : cubic-bezier(0 .4 , 0, 0 .2 , 1 ); transition-duration : 150ms;
transition-shadow
transition-property : shadow; transition-timing-function : cubic-bezier(0 .4 , 0, 0 .2 , 1 ); transition-duration : 150ms;
transition-none
transition-property : none;
float-start
float-end
float-right
float-left
float-none
clear-start
clear-end
clear-right
clear-left
clear-both
clear-none
inline-block
inline-flex
inline-table
block
inline
hidden
table
table-caption
table-cell
table-column
table-column-group
display: table-column-group ;
display: table-footer-group ;
display: table-header-group ;
table-row-group
display: table-row-group ;
table-row
flow-root
grid
inline-grid
contents
list-item
bg-inherit
background-color : inherit;
bg-transparent
background-color : transparent;
bg-auto
bg-cover
bg-contain
background-size : contain;
bg-fixed
background-attachment : fixed;
bg-local
background-attachment : local;
background-attachment : scroll;
bg-center
background-position : center;
bg-top
background-position : top;
bg-right-top
background-position : right-top ;
bg-right
background-position : right;
bg-right-bottom
background-position : right-bottom ;
bg-bottom
background-position : bottom;
bg-left-bottom
background-position : left-bottom ;
bg-left
background-position : left;
bg-left-top
background-position : left-top ;
bg-repeat
background-repeat : repeat;
bg-no-repeat
background-repeat : no-repeat ;
bg-repeat-x
background-repeat : repeat-x ;
bg-repeat-y
background-repeat : repeat-y ;
bg-round
background-repeat : round;
bg-space
background-repeat : space;
bg-none
pointer-events-none
pointer-events-auto
place-content-center
place-content-start
place-content-end
place-content-between
place-content-around
place-content-evenly
place-content-baseline
place-content-stretch
place-items-center
place-items-start
place-items-end
place-items-baseline
place-items-stretch
inset-auto
start-auto
inset-inline-start : auto;
end-auto
top-auto
right-auto
bottom-auto
left-auto
isolate
isolation-auto
z-auto
order-first
order-last
order-none
col-auto
col-span-full
col-start-auto
col-end-auto
row-auto
row-span-full
row-start-auto
row-end-auto
box-border
box-content
aspect-auto
aspect-square
aspect-video
flex-auto
flex-initial
flex-none
basis-auto
basis-full
table-auto
table-fixed
caption-top
caption-bottom
border-collapse
border-collapse : collapse;
border-separate
border-collapse : separate;
origin-center
transform-origin : center;
origin-top
origin-top-right
transform-origin : top right;
origin-right
origin-bottom-right
transform-origin : bottom right;
origin-bottom
transform-origin : bottom;
origin-bottom-left
transform-origin : bottom left;
origin-left
origin-top-left
transform-origin : top left;
perspective-origin-center
perspective-origin : center;
perspective-origin-top
perspective-origin-top-right
perspective-origin : top right;
perspective-origin-right
perspective-origin : right;
perspective-origin-bottom-right
perspective-origin : bottom right;
perspective-origin-bottom
perspective-origin : bottom;
perspective-origin-bottom-left
perspective-origin : bottom left;
perspective-origin-left
perspective-origin : left;
perspective-origin-top-left
perspective-origin : top left;
perspective-none
translate-none
transform-style : preserve-3d ;
transform-content
transform-box : content-box ;
transform-box : border-box ;
transform-box : stroke-box ;
backface-visible
backface-visibility : visible;
backface-hidden
backface-visibility : hidden;
resize-none
resize-both
resize-x
resize-y
snap-none
snap-align-none
snap-start
scroll-snap-align : start;
snap-end
snap-center
scroll-snap-align : center;
snap-normal
scroll-snap-stop : normal;
snap-always
scroll-snap-stop : always;
list-inside
list-style-position : inside;
list-outside
list-style-position : outside;
list-none
list-disc
list-decimal
list-style-type : decimal;
list-image-none
appearance-none
appearance-auto
columns-auto
grid-flow-row
grid-flow-col
grid-flow-dense
grid-flow-row-dense
grid-auto-flow : row dense;
grid-flow-col-dense
grid-auto-flow : column dense;
auto-cols-auto
auto-cols-min
grid-auto-columns : min-content ;
auto-cols-max
grid-auto-columns : max-content ;
auto-cols-fr
grid-auto-columns : minmax(0, 1fr );
auto-rows-auto
auto-rows-min
grid-auto-rows : min-content ;
auto-rows-max
grid-auto-rows : max-content ;
auto-rows-fr
grid-auto-rows : minmax(0, 1fr );
grid-cols-none
grid-template-columns : none;
grid-cols-subgrid
grid-template-columns : subgrid;
grid-rows-none
grid-template-rows : none;
grid-rows-subgrid
grid-template-rows : subgrid;
flex-row
flex-row-reverse
flex-direction : row-reverse ;
flex-col
flex-col-reverse
flex-direction : column-reverse ;
flex-wrap
flex-nowrap
flex-wrap-reverse
content-normal
content-center
content-start
align-content : flex-start ;
content-end
content-between
align-content : space-between ;
content-around
align-content : space-around ;
content-evenly
align-content : space-evenly ;
content-baseline
content-stretch
items-center
items-start
items-end
items-baseline
items-stretch
justify-normal
justify-center
justify-start
justify-content : flex-start ;
justify-end
justify-content : flex-end ;
justify-between
justify-content : space-between ;
justify-around
justify-content : space-around ;
justify-evenly
justify-content : space-evenly ;
justify-baseline
justify-content : baseline;
justify-stretch
justify-content : stretch;
justify-items-normal
justify-items-center
justify-items-start
justify-items-end
justify-items-stretch
place-self-auto
place-self-start
place-self-end
place-self-center
place-self-stretch
self-auto
self-start
self-end
self-center
self-stretch
self-baseline
justify-self-auto
justify-self-start
justify-self : flex-start ;
justify-self-end
justify-self-center
justify-self-stretch
text-ellipsis
text-clip
whitespace-normal
whitespace-nowrap
whitespace-pre
whitespace-pre-line
whitespace-pre-wrap
whitespace-break-spaces
white-space : break-spaces ;
text-wrap
text-nowrap
text-balance
text-pretty
break-words
overflow-wrap : break-word ;
break-all
break-keep
via-none
--tw-gradient-via-stops: initial;
bg-clip-text
bg-clip-border
background-clip : border-box ;
bg-clip-padding
background-clip : padding-box ;
bg-clip-content
background-clip : content-box ;
bg-origin-border
background-origin : border-box ;
bg-origin-padding
background-origin : padding-box ;
bg-origin-content
background-origin : content-box ;
mix-blend-plus-darker
mix-blend-mode : plus-darker ;
mix-blend-plus-lighter
mix-blend-mode : plus-lighter ;
stroke-none
object-contain
object-cover
object-fill
object-none
object-scale-down
object-bottom
object-center
object-left
object-left-bottom
object-position : left bottom;
object-left-top
object-position : left top;
object-right
object-right-bottom
object-position : right bottom;
object-right-top
object-position : right top;
object-top
text-left
text-center
text-right
text-justify
text-start
text-end
align-baseline
vertical-align : baseline;
align-top
align-middle
align-bottom
align-text-top
vertical-align : text-top ;
align-text-bottom
vertical-align : text-bottom ;
align-sub
align-super
uppercase
text-transform : uppercase;
lowercase
text-transform : lowercase;
capitalize
text-transform : capitalize;
normal-case
italic
not-italic
underline
text-decoration-line : underline;
overline
text-decoration-line : overline;
line-through
text-decoration-line : line-through ;
no-underline
text-decoration-line : none;
font-stretch-normal
font-stretch-ultra-condensed
font-stretch : ultra-condensed ;
font-stretch : extra-condensed ;
font-stretch-condensed
font-stretch-semi-condensed
font-stretch : semi-condensed ;
font-stretch-semi-expanded
font-stretch : semi-expanded ;
font-stretch-expanded
font-stretch-extra-expanded
font-stretch : extra-expanded ;
font-stretch-ultra-expanded
font-stretch : ultra-expanded ;
decoration-solid
text-decoration-style : solid;
decoration-double
text-decoration-style : double;
decoration-dotted
text-decoration-style : dotted;
decoration-dashed
text-decoration-style : dashed;
decoration-wavy
text-decoration-style : wavy;
decoration-auto
text-decoration-thickness : auto;
decoration-from-font
text-decoration-thickness : from-font ;
animate-none
will-change-auto
will-change : scroll-position ;
will-change-contents
contain-none
contain-content
contain-strict
forced-color-adjust-none
forced-color-adjust : none;
forced-color-adjust-auto
forced-color-adjust : auto;
normal-nums
font-variant-numeric : normal;
underline-offset-auto
text-underline-offset : auto;
touch-none
touch-auto
touch-pan-x
cursor-auto
cursor-default
select-none
-webkit-user-select: none; user-select : none;
select-text
-webkit-user-select: text; user-select : text;
rotate-0
rotate-90
border-inherit
border-current
border-color : currentColor;
border-transparent
border-color : transparent;
border-x-black
border-left-color : rgb(0 0 0 ); border-right-color : rgb(0 0 0 );
border-black
border-color : rgb(0 0 0 );
border-white
border-color : rgb(255 255 255 );
border-slate-50
border-color : rgb(248 250 252 );
border-slate-100
border-color : rgb(241 245 249 );
border-slate-200
border-color : rgb(226 232 240 );
border-slate-300
border-color : rgb(203 213 225 );
border-slate-400
border-color : rgb(148 163 184 );
border-slate-500
border-color : rgb(100 116 139 );
border-slate-600
border-color : rgb(71 85 105 );
border-slate-700
border-color : rgb(51 65 85 );
border-slate-800
border-color : rgb(30 41 59 );
border-slate-900
border-color : rgb(15 23 42 );
border-slate-950
border-color : rgb(2 6 23 );
border-gray-50
border-color : rgb(249 250 251 );
border-gray-100
border-color : rgb(243 244 246 );
border-gray-200
border-color : rgb(229 231 235 );
border-gray-300
border-color : rgb(209 213 219 );
border-gray-400
border-color : rgb(156 163 175 );
border-gray-500
border-color : rgb(107 114 128 );
border-gray-600
border-color : rgb(75 85 99 );
border-gray-700
border-color : rgb(55 65 81 );
border-gray-800
border-color : rgb(31 41 55 );
border-gray-900
border-color : rgb(17 24 39 );
border-gray-950
border-color : rgb(3 7 18 );
border-zinc-50
border-color : rgb(250 250 250 );
border-zinc-100
border-color : rgb(244 244 245 );
border-zinc-200
border-color : rgb(228 228 231 );
border-zinc-300
border-color : rgb(212 212 216 );
border-zinc-400
border-color : rgb(161 161 170 );
border-zinc-500
border-color : rgb(113 113 122 );
border-zinc-600
border-color : rgb(82 82 91 );
border-zinc-700
border-color : rgb(63 63 70 );
border-zinc-800
border-color : rgb(39 39 42 );
border-zinc-900
border-color : rgb(24 24 27 );
border-zinc-950
border-color : rgb(9 9 11 );
border-neutral-50
border-color : rgb(250 250 250 );
border-neutral-100
border-color : rgb(245 245 245 );
border-neutral-200
border-color : rgb(229 229 229 );
border-neutral-300
border-color : rgb(212 212 212 );
border-neutral-400
border-color : rgb(163 163 163 );
border-neutral-500
border-color : rgb(115 115 115 );
border-neutral-600
border-color : rgb(82 82 82 );
border-neutral-700
border-color : rgb(64 64 64 );
border-neutral-800
border-color : rgb(38 38 38 );
border-neutral-900
border-color : rgb(23 23 23 );
border-neutral-950
border-color : rgb(10 10 10 );
border-stone-50
border-color : rgb(250 250 249 );
border-stone-100
border-color : rgb(245 245 244 );
border-stone-200
border-color : rgb(231 229 228 );
border-stone-300
border-color : rgb(214 211 209 );
border-stone-400
border-color : rgb(168 162 158 );
border-stone-500
border-color : rgb(120 113 108 );
border-stone-600
border-color : rgb(87 83 78 );
border-stone-700
border-color : rgb(68 64 60 );
border-stone-800
border-color : rgb(41 37 36 );
border-stone-900
border-color : rgb(28 25 23 );
border-stone-950
border-color : rgb(12 10 9 );
border-red-50
border-color : rgb(254 242 242 );
border-red-100
border-color : rgb(254 226 226 );
border-red-200
border-color : rgb(254 202 202 );
border-red-300
border-color : rgb(252 165 165 );
border-red-400
border-color : rgb(248 113 113 );
border-red-500
border-color : rgb(239 68 68 );
border-red-600
border-color : rgb(220 38 38 );
border-red-700
border-color : rgb(185 28 28 );
border-red-800
border-color : rgb(153 27 27 );
border-red-900
border-color : rgb(127 29 29 );
border-red-950
border-color : rgb(69 10 10 );
border-orange-50
border-color : rgb(255 247 237 );
border-orange-100
border-color : rgb(255 237 213 );
border-orange-200
border-color : rgb(254 215 170 );
border-orange-300
border-color : rgb(253 186 116 );
border-orange-400
border-color : rgb(251 146 60 );
border-orange-500
border-color : rgb(249 115 22 );
border-orange-600
border-color : rgb(234 88 12 );
border-orange-700
border-color : rgb(194 65 12 );
border-orange-800
border-color : rgb(154 52 18 );
border-orange-900
border-color : rgb(124 45 18 );
border-orange-950
border-color : rgb(67 20 7 );
border-amber-50
border-color : rgb(255 251 235 );
border-amber-100
border-color : rgb(254 243 199 );
border-amber-200
border-color : rgb(253 230 138 );
border-amber-300
border-color : rgb(252 211 77 );
border-amber-400
border-color : rgb(251 191 36 );
border-amber-500
border-color : rgb(245 158 11 );
border-amber-600
border-color : rgb(217 119 6 );
border-amber-700
border-color : rgb(180 83 9 );
border-amber-800
border-color : rgb(146 64 14 );
border-amber-900
border-color : rgb(120 53 15 );
border-amber-950
border-color : rgb(69 26 3 );
border-yellow-50
border-color : rgb(254 252 232 );
border-yellow-100
border-color : rgb(254 249 195 );
border-yellow-200
border-color : rgb(254 240 138 );
border-yellow-300
border-color : rgb(253 224 71 );
border-yellow-400
border-color : rgb(250 204 21 );
border-yellow-500
border-color : rgb(234 179 8 );
border-yellow-600
border-color : rgb(202 138 4 );
border-yellow-700
border-color : rgb(161 98 7 );
border-yellow-800
border-color : rgb(133 77 14 );
border-yellow-900
border-color : rgb(113 63 18 );
border-yellow-950
border-color : rgb(66 32 6 );
border-lime-50
border-color : rgb(247 254 231 );
border-lime-100
border-color : rgb(236 252 203 );
border-lime-200
border-color : rgb(217 249 157 );
border-lime-300
border-color : rgb(190 242 100 );
border-lime-400
border-color : rgb(163 230 53 );
border-lime-500
border-color : rgb(132 204 22 );
border-lime-600
border-color : rgb(101 163 13 );
border-lime-700
border-color : rgb(77 124 15 );
border-lime-800
border-color : rgb(63 98 18 );
border-lime-900
border-color : rgb(54 83 20 );
border-lime-950
border-color : rgb(26 46 5 );
border-green-50
border-color : rgb(240 253 244 );
border-green-100
border-color : rgb(220 252 231 );
border-green-200
border-color : rgb(187 247 208 );
border-green-300
border-color : rgb(134 239 172 );
border-green-400
border-color : rgb(74 222 128 );
border-green-500
border-color : rgb(34 197 94 );
border-green-600
border-color : rgb(22 163 74 );
border-green-700
border-color : rgb(21 128 61 );
border-green-800
border-color : rgb(22 101 52 );
border-green-900
border-color : rgb(20 83 45 );
border-green-950
border-color : rgb(5 46 22 );
border-emerald-50
border-color : rgb(236 253 245 );
border-emerald-100
border-color : rgb(209 250 229 );
border-emerald-200
border-color : rgb(167 243 208 );
border-emerald-300
border-color : rgb(110 231 183 );
border-emerald-400
border-color : rgb(52 211 153 );
border-emerald-500
border-color : rgb(16 185 129 );
border-emerald-600
border-color : rgb(5 150 105 );
border-emerald-700
border-color : rgb(4 120 87 );
border-emerald-800
border-color : rgb(6 95 70 );
border-emerald-900
border-color : rgb(6 78 59 );
border-emerald-950
border-color : rgb(2 44 34 );
border-teal-50
border-color : rgb(240 253 250 );
border-teal-100
border-color : rgb(204 251 241 );
border-teal-200
border-color : rgb(153 246 228 );
border-teal-300
border-color : rgb(94 234 212 );
border-teal-400
border-color : rgb(45 212 191 );
border-teal-500
border-color : rgb(20 184 166 );
border-teal-600
border-color : rgb(13 148 136 );
border-teal-700
border-color : rgb(15 118 110 );
border-teal-800
border-color : rgb(17 94 89 );
border-teal-900
border-color : rgb(19 78 74 );
border-teal-950
border-color : rgb(4 47 46 );
border-cyan-50
border-color : rgb(236 254 255 );
border-cyan-100
border-color : rgb(207 250 254 );
border-cyan-200
border-color : rgb(165 243 252 );
border-cyan-300
border-color : rgb(103 232 249 );
border-cyan-400
border-color : rgb(34 211 238 );
border-cyan-500
border-color : rgb(6 182 212 );
border-cyan-600
border-color : rgb(8 145 178 );
border-cyan-700
border-color : rgb(14 116 144 );
border-cyan-800
border-color : rgb(21 94 117 );
border-cyan-900
border-color : rgb(22 78 99 );
border-cyan-950
border-color : rgb(8 51 68 );
border-sky-50
border-color : rgb(240 249 255 );
border-sky-100
border-color : rgb(224 242 254 );
border-sky-200
border-color : rgb(186 230 253 );
border-sky-300
border-color : rgb(125 211 252 );
border-sky-400
border-color : rgb(56 189 248 );
border-sky-500
border-color : rgb(14 165 233 );
border-sky-600
border-color : rgb(2 132 199 );
border-sky-700
border-color : rgb(3 105 161 );
border-sky-800
border-color : rgb(7 89 133 );
border-sky-900
border-color : rgb(12 74 110 );
border-sky-950
border-color : rgb(8 47 73 );
border-blue-50
border-color : rgb(239 246 255 );
border-blue-100
border-color : rgb(219 234 254 );
border-blue-200
border-color : rgb(191 219 254 );
border-blue-300
border-color : rgb(147 197 253 );
border-blue-400
border-color : rgb(96 165 250 );
border-blue-500
border-color : rgb(59 130 246 );
border-blue-600
border-color : rgb(37 99 235 );
border-blue-700
border-color : rgb(29 78 216 );
border-blue-800
border-color : rgb(30 64 175 );
border-blue-900
border-color : rgb(30 58 138 );
border-blue-950
border-color : rgb(23 37 84 );
border-indigo-50
border-color : rgb(238 242 255 );
border-indigo-100
border-color : rgb(224 231 255 );
border-indigo-200
border-color : rgb(199 210 254 );
border-indigo-300
border-color : rgb(165 180 252 );
border-indigo-400
border-color : rgb(129 140 248 );
border-indigo-500
border-color : rgb(99 102 241 );
border-indigo-600
border-color : rgb(79 70 229 );
border-indigo-700
border-color : rgb(67 56 202 );
border-indigo-800
border-color : rgb(55 48 163 );
border-indigo-900
border-color : rgb(49 46 129 );
border-indigo-950
border-color : rgb(30 27 75 );
border-violet-50
border-color : rgb(245 243 255 );
border-violet-100
border-color : rgb(237 233 254 );
border-violet-200
border-color : rgb(221 214 254 );
border-violet-300
border-color : rgb(196 181 253 );
border-violet-400
border-color : rgb(167 139 250 );
border-violet-500
border-color : rgb(139 92 246 );
border-violet-600
border-color : rgb(124 58 237 );
border-violet-700
border-color : rgb(109 40 217 );
border-violet-800
border-color : rgb(91 33 182 );
border-violet-900
border-color : rgb(76 29 149 );
border-violet-950
border-color : rgb(46 16 101 );
border-purple-50
border-color : rgb(250 245 255 );
border-purple-100
border-color : rgb(243 232 255 );
border-purple-200
border-color : rgb(233 213 255 );
border-purple-300
border-color : rgb(216 180 254 );
border-purple-400
border-color : rgb(192 132 252 );
border-purple-500
border-color : rgb(168 85 247 );
border-purple-600
border-color : rgb(147 51 234 );
border-purple-700
border-color : rgb(126 34 206 );
border-purple-800
border-color : rgb(107 33 168 );
border-purple-900
border-color : rgb(88 28 135 );
border-purple-950
border-color : rgb(59 7 100 );
border-fuchsia-50
border-color : rgb(253 244 255 );
border-fuchsia-100
border-color : rgb(250 232 255 );
border-fuchsia-200
border-color : rgb(245 208 254 );
border-fuchsia-300
border-color : rgb(240 171 252 );
border-fuchsia-400
border-color : rgb(232 121 249 );
border-fuchsia-500
border-color : rgb(217 70 239 );
border-fuchsia-600
border-color : rgb(192 38 211 );
border-fuchsia-700
border-color : rgb(162 28 175 );
border-fuchsia-800
border-color : rgb(134 25 143 );
border-fuchsia-900
border-color : rgb(112 26 117 );
border-fuchsia-950
border-color : rgb(74 4 78 );
border-pink-50
border-color : rgb(253 242 248 );
border-pink-100
border-color : rgb(252 231 243 );
border-pink-200
border-color : rgb(251 207 232 );
border-pink-300
border-color : rgb(249 168 212 );
border-pink-400
border-color : rgb(244 114 182 );
border-pink-500
border-color : rgb(236 72 153 );
border-pink-600
border-color : rgb(219 39 119 );
border-pink-700
border-color : rgb(190 24 93 );
border-pink-800
border-color : rgb(157 23 77 );
border-pink-900
border-color : rgb(131 24 67 );
border-pink-950
border-color : rgb(80 7 36 );
border-rose-50
border-color : rgb(255 241 242 );
border-rose-100
border-color : rgb(255 228 230 );
border-rose-200
border-color : rgb(254 205 211 );
border-rose-300
border-color : rgb(253 164 175 );
border-rose-400
border-color : rgb(251 113 133 );
border-rose-500
border-color : rgb(244 63 94 );
border-rose-600
border-color : rgb(225 29 72 );
border-rose-700
border-color : rgb(190 18 60 );
border-rose-800
border-color : rgb(159 18 57 );
border-rose-900
border-color : rgb(136 19 55 );
border-rose-950
border-color : rgb(76 5 25 );
w-0
w-px
w-0.5
w-1
w-1.5
w-2
w-2.5
w-3
w-3.5
w-4
w-5
w-6
w-7
w-8
w-9
w-10
w-11
w-12
w-14
w-16
w-20
w-24
w-28
w-32
w-36
w-40
w-44
w-48
w-52
w-56
w-60
w-64
w-72
w-80
w-96
w-auto
w-1/2
w-1/3
w-2/3
w-1/4
w-2/4
w-3/4
w-1/5
w-2/5
w-3/5
w-4/5
w-1/6
w-2/6
w-3/6
w-4/6
w-5/6
w-1/12
w-2/12
w-3/12
w-4/12
w-5/12
w-6/12
w-7/12
w-8/12
w-9/12
w-10/12
w-11/12
w-full
w-screen
w-svw
w-lvw
w-dvw
w-min
w-max
w-fit
h-0
h-px
h-0.5
h-1
h-1.5
h-2
h-2.5
h-3
h-3.5
h-4
h-5
h-6
h-7
h-8
h-9
h-10
h-11
h-12
h-14
h-16
h-20
h-24
h-28
h-32
h-36
h-40
h-44
h-48
h-52
h-56
h-60
h-64
h-72
h-80
h-96
h-auto
h-1/2
h-1/3
h-2/3
h-1/4
h-2/4
h-3/4
h-1/5
h-2/5
h-3/5
h-4/5
h-1/6
h-2/6
h-3/6
h-4/6
h-5/6
h-full
h-screen
h-svh
h-lvh
h-dvh
h-min
h-max
h-fit
min-w-0
min-w-1
min-w-2
min-w-3
min-w-4
min-w-5
min-w-6
min-w-7
min-w-8
min-w-9
min-w-10
min-w-11
min-w-12
min-w-14
min-w-16
min-w-20
min-w-24
min-w-28
min-w-32
min-w-36
min-w-40
min-w-44
min-w-48
min-w-52
min-w-56
min-w-60
min-w-64
min-w-72
min-w-80
min-w-96
min-w-px
min-w-0.5
min-w-1.5
min-w-2.5
min-w-3.5
min-w-full
min-w-min
min-w-max
min-w-fit
max-w-0
max-w-1
max-w-2
max-w-3
max-w-4
max-w-5
max-w-6
max-w-7
max-w-8
max-w-9
max-w-10
max-w-11
max-w-12
max-w-14
max-w-16
max-w-20
max-w-24
max-w-28
max-w-32
max-w-36
max-w-40
max-w-44
max-w-48
max-w-52
max-w-56
max-w-60
max-w-64
max-w-72
max-w-80
max-w-96
max-w-px
max-w-0.5
max-w-1.5
max-w-2.5
max-w-3.5
max-w-full
max-w-max
max-w-min
max-w-fit
size-0
size-px
size-0.5
width: 0.125rem; height: 0.125rem;
size-1
width: 0.25rem; height: 0.25rem;
size-1.5
width: 0.375rem; height: 0.375rem;
size-2
width: 0.5rem; height: 0.5rem;
size-2.5
width: 0.625rem; height: 0.625rem;
size-3
width: 0.75rem; height: 0.75rem;
size-3.5
width: 0.875rem; height: 0.875rem;
size-4
width: 1rem; height: 1rem;
size-5
width: 1.25rem; height: 1.25rem;
size-6
width: 1.5rem; height: 1.5rem;
size-7
width: 1.75rem; height: 1.75rem;
size-8
width: 2rem; height: 2rem;
size-9
width: 2.25rem; height: 2.25rem;
size-10
width: 2.5rem; height: 2.5rem;
size-11
width: 2.75rem; height: 2.75rem;
size-12
width: 3rem; height: 3rem;
size-14
width: 3.5rem; height: 3.5rem;
size-16
width: 4rem; height: 4rem;
size-20
width: 5rem; height: 5rem;
size-24
width: 6rem; height: 6rem;
size-28
width: 7rem; height: 7rem;
size-32
width: 8rem; height: 8rem;
size-36
width: 9rem; height: 9rem;
size-40
width: 10rem; height: 10rem;
size-44
width: 11rem; height: 11rem;
size-48
width: 12rem; height: 12rem;
size-52
width: 13rem; height: 13rem;
size-56
width: 14rem; height: 14rem;
size-60
width: 15rem; height: 15rem;
size-64
width: 16rem; height: 16rem;
size-72
width: 18rem; height: 18rem;
size-80
width: 20rem; height: 20rem;
size-96
width: 24rem; height: 24rem;
size-auto
width: auto; height: auto;
size-1/2
size-1/3
width: 33.333333%; height: 33.333333%;
size-2/3
width: 66.666667%; height: 66.666667%;
size-1/4
size-2/4
size-3/4
size-1/5
size-2/5
size-3/5
size-4/5
size-1/6
width: 16.666667%; height: 16.666667%;
size-2/6
width: 33.333333%; height: 33.333333%;
size-3/6
size-4/6
width: 66.666667%; height: 66.666667%;
size-5/6
width: 83.333333%; height: 83.333333%;
size-1/12
width: 8.333333%; height: 8.333333%;
size-2/12
width: 16.666667%; height: 16.666667%;
size-3/12
size-4/12
width: 33.333333%; height: 33.333333%;
size-5/12
width: 41.666667%; height: 41.666667%;
size-6/12
size-7/12
width: 58.333333%; height: 58.333333%;
size-8/12
width: 66.666667%; height: 66.666667%;
size-9/12
size-10/12
width: 83.333333%; height: 83.333333%;
size-11/12
width: 91.666667%; height: 91.666667%;
size-full
width: 100%; height: 100%;
size-min
width: min-content ; height: min-content ;
size-max
width: max-content ; height: max-content ;
size-fit
width: fit-content ; height: fit-content ;
Colors
View Colors
inherit
current
transparent
black
white
slate-50
slate-100
slate-200
slate-300
slate-400
slate-500
slate-600
slate-700
slate-800
slate-900
slate-950
gray-50
gray-100
gray-200
gray-300
gray-400
gray-500
gray-600
gray-700
gray-800
gray-900
gray-950
zinc-50
zinc-100
zinc-200
zinc-300
zinc-400
zinc-500
zinc-600
zinc-700
zinc-800
zinc-900
zinc-950
neutral-50
neutral-100
neutral-200
neutral-300
neutral-400
neutral-500
neutral-600
neutral-700
neutral-800
neutral-900
neutral-950
stone-50
stone-100
stone-200
stone-300
stone-400
stone-500
stone-600
stone-700
stone-800
stone-900
stone-950
red-50
red-100
red-200
red-300
red-400
red-500
red-600
red-700
red-800
red-900
red-950
orange-50
orange-100
orange-200
orange-300
orange-400
orange-500
orange-600
orange-700
orange-800
orange-900
orange-950
amber-50
amber-100
amber-200
amber-300
amber-400
amber-500
amber-600
amber-700
amber-800
amber-900
amber-950
yellow-50
yellow-100
yellow-200
yellow-300
yellow-400
yellow-500
yellow-600
yellow-700
yellow-800
yellow-900
yellow-950
lime-50
lime-100
lime-200
lime-300
lime-400
lime-500
lime-600
lime-700
lime-800
lime-900
lime-950
green-50
green-100
green-200
green-300
green-400
green-500
green-600
green-700
green-800
green-900
green-950
emerald-50
emerald-100
emerald-200
emerald-300
emerald-400
emerald-500
emerald-600
emerald-700
emerald-800
emerald-900
emerald-950
teal-50
teal-100
teal-200
teal-300
teal-400
teal-500
teal-600
teal-700
teal-800
teal-900
teal-950
cyan-50
cyan-100
cyan-200
cyan-300
cyan-400
cyan-500
cyan-600
cyan-700
cyan-800
cyan-900
cyan-950
sky-50
sky-100
sky-200
sky-300
sky-400
sky-500
sky-600
sky-700
sky-800
sky-900
sky-950
blue-50
blue-100
blue-200
blue-300
blue-400
blue-500
blue-600
blue-700
blue-800
blue-900
blue-950
indigo-50
indigo-100
indigo-200
indigo-300
indigo-400
indigo-500
indigo-600
indigo-700
indigo-800
indigo-900
indigo-950
violet-50
violet-100
violet-200
violet-300
violet-400
violet-500
violet-600
violet-700
violet-800
violet-900
violet-950
purple-50
purple-100
purple-200
purple-300
purple-400
purple-500
purple-600
purple-700
purple-800
purple-900
purple-950
fuchsia-50
fuchsia-100
fuchsia-200
fuchsia-300
fuchsia-400
fuchsia-500
fuchsia-600
fuchsia-700
fuchsia-800
fuchsia-900
fuchsia-950
pink-50
pink-100
pink-200
pink-300
pink-400
pink-500
pink-600
pink-700
pink-800
pink-900
pink-950
rose-50
rose-100
rose-200
rose-300
rose-400
rose-500
rose-600
rose-700
rose-800
rose-900
rose-950