card.css 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. [data-component="card"] {
  2. --card-pad-y: 10px;
  3. --card-pad-r: 12px;
  4. --card-pad-l: 10px;
  5. width: 100%;
  6. display: flex;
  7. flex-direction: column;
  8. position: relative;
  9. background: transparent;
  10. border: none;
  11. border-radius: var(--radius-md);
  12. padding: var(--card-pad-y) var(--card-pad-r) var(--card-pad-y) var(--card-pad-l);
  13. /* text-14-regular */
  14. font-family: var(--font-family-sans);
  15. font-size: var(--font-size-base);
  16. font-style: normal;
  17. font-weight: var(--font-weight-regular);
  18. line-height: var(--line-height-large);
  19. letter-spacing: var(--letter-spacing-normal);
  20. color: var(--text-strong);
  21. --card-gap: 8px;
  22. --card-icon: 16px;
  23. --card-indent: 0px;
  24. --card-line-pad: 8px;
  25. --card-accent: var(--icon-active);
  26. &:has([data-slot="card-title"]) {
  27. gap: 8px;
  28. }
  29. &:has([data-slot="card-title-icon"]) {
  30. --card-indent: calc(var(--card-icon) + var(--card-gap));
  31. }
  32. &::before {
  33. content: "";
  34. position: absolute;
  35. left: 0;
  36. top: var(--card-line-pad);
  37. bottom: var(--card-line-pad);
  38. width: 2px;
  39. border-radius: 2px;
  40. background-color: var(--card-accent);
  41. }
  42. :where([data-card="title"], [data-slot="card-title"]) {
  43. color: var(--text-strong);
  44. font-weight: var(--font-weight-medium);
  45. }
  46. :where([data-slot="card-title"]) {
  47. display: flex;
  48. align-items: center;
  49. gap: var(--card-gap);
  50. }
  51. :where([data-slot="card-title"]) [data-component="icon"] {
  52. color: var(--card-accent);
  53. }
  54. :where([data-slot="card-title-icon"]) {
  55. display: inline-flex;
  56. align-items: center;
  57. justify-content: center;
  58. width: var(--card-icon);
  59. height: var(--card-icon);
  60. flex: 0 0 auto;
  61. }
  62. :where([data-slot="card-title-icon"][data-placeholder]) [data-component="icon"] {
  63. color: var(--text-weak);
  64. }
  65. :where([data-slot="card-title-icon"])
  66. [data-slot="icon-svg"]
  67. :is(path, line, polyline, polygon, rect, circle, ellipse)[stroke] {
  68. stroke-width: 1.5px !important;
  69. }
  70. :where([data-card="description"], [data-slot="card-description"]) {
  71. color: var(--text-base);
  72. white-space: pre-wrap;
  73. overflow-wrap: anywhere;
  74. word-break: break-word;
  75. }
  76. :where([data-card="actions"], [data-slot="card-actions"]) {
  77. padding-left: var(--card-indent);
  78. }
  79. }