Files
cinny/src/app/components/sequence-card/style.css.ts
T

83 lines
1.9 KiB
TypeScript
Raw Normal View History

import { createVar } from '@vanilla-extract/css';
import { RecipeVariants, recipe } from '@vanilla-extract/recipes';
import { config } from 'folds';
const outlinedWidth = createVar('0');
2025-08-05 18:37:07 +05:30
const radii = createVar(config.radii.R400);
export const SequenceCard = recipe({
base: {
vars: {
[outlinedWidth]: '0',
},
borderStyle: 'solid',
borderWidth: outlinedWidth,
borderBottomWidth: 0,
selectors: {
'&:first-child, :not(&) + &': {
2025-08-05 18:37:07 +05:30
borderTopLeftRadius: [radii],
borderTopRightRadius: [radii],
},
'&:last-child, &:not(:has(+&))': {
2025-08-05 18:37:07 +05:30
borderBottomLeftRadius: [radii],
borderBottomRightRadius: [radii],
borderBottomWidth: outlinedWidth,
},
[`&[data-first-child="true"]`]: {
2025-08-05 18:37:07 +05:30
borderTopLeftRadius: [radii],
borderTopRightRadius: [radii],
},
[`&[data-first-child="false"]`]: {
borderTopLeftRadius: 0,
borderTopRightRadius: 0,
},
[`&[data-last-child="true"]`]: {
2025-08-05 18:37:07 +05:30
borderBottomLeftRadius: [radii],
borderBottomRightRadius: [radii],
},
[`&[data-last-child="false"]`]: {
borderBottomLeftRadius: 0,
borderBottomRightRadius: 0,
},
2025-08-05 18:37:07 +05:30
'button&': {
cursor: 'pointer',
},
},
},
variants: {
2025-08-05 18:37:07 +05:30
radii: {
'0': {
vars: {
[radii]: config.radii.R0,
},
},
'300': {
vars: {
[radii]: config.radii.R300,
},
},
'400': {
vars: {
[radii]: config.radii.R400,
},
},
'500': {
vars: {
[radii]: config.radii.R500,
},
},
},
outlined: {
true: {
vars: {
[outlinedWidth]: config.borderWidth.B300,
},
},
},
},
2025-08-05 18:37:07 +05:30
defaultVariants: {
radii: '400',
},
});
export type SequenceCardVariants = RecipeVariants<typeof SequenceCard>;