@semanticus/semanticus-css 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +53 -0
  3. package/README.md +151 -0
  4. package/dist/semanticus-semantics.css +2 -0
  5. package/dist/semanticus-utilities.css +7 -0
  6. package/dist/semanticus-variants.css +1 -0
  7. package/dist/semanticus.css +7 -0
  8. package/dist/semanticus.palette.amber.css +1 -0
  9. package/dist/semanticus.palette.blue.css +1 -0
  10. package/dist/semanticus.palette.cyan.css +1 -0
  11. package/dist/semanticus.palette.fuchsia.css +1 -0
  12. package/dist/semanticus.palette.green.css +1 -0
  13. package/dist/semanticus.palette.grey.css +1 -0
  14. package/dist/semanticus.palette.indigo.css +1 -0
  15. package/dist/semanticus.palette.jade.css +1 -0
  16. package/dist/semanticus.palette.lime.css +1 -0
  17. package/dist/semanticus.palette.orange.css +1 -0
  18. package/dist/semanticus.palette.pink.css +1 -0
  19. package/dist/semanticus.palette.pumpkin.css +1 -0
  20. package/dist/semanticus.palette.purple.css +1 -0
  21. package/dist/semanticus.palette.red.css +1 -0
  22. package/dist/semanticus.palette.sand.css +1 -0
  23. package/dist/semanticus.palette.slate.css +1 -0
  24. package/dist/semanticus.palette.violet.css +1 -0
  25. package/dist/semanticus.palette.yellow.css +1 -0
  26. package/dist/semanticus.palette.zinc.css +1 -0
  27. package/dist/semanticus.size.slim.css +1 -0
  28. package/package.json +102 -0
  29. package/src/_normalize.css +214 -0
  30. package/src/_variables.css +863 -0
  31. package/src/index.css +20 -0
  32. package/src/palettes/amber.css +56 -0
  33. package/src/palettes/blue.css +56 -0
  34. package/src/palettes/cyan.css +56 -0
  35. package/src/palettes/fuchsia.css +56 -0
  36. package/src/palettes/green.css +56 -0
  37. package/src/palettes/grey.css +56 -0
  38. package/src/palettes/indigo.css +56 -0
  39. package/src/palettes/jade.css +56 -0
  40. package/src/palettes/lime.css +56 -0
  41. package/src/palettes/orange.css +56 -0
  42. package/src/palettes/pink.css +56 -0
  43. package/src/palettes/pumpkin.css +56 -0
  44. package/src/palettes/purple.css +56 -0
  45. package/src/palettes/red.css +56 -0
  46. package/src/palettes/sand.css +56 -0
  47. package/src/palettes/slate.css +56 -0
  48. package/src/palettes/violet.css +56 -0
  49. package/src/palettes/yellow.css +56 -0
  50. package/src/palettes/zinc.css +56 -0
  51. package/src/semantics/_aria-busy.css +34 -0
  52. package/src/semantics/_article.css +6 -0
  53. package/src/semantics/_body.css +10 -0
  54. package/src/semantics/_button.css +106 -0
  55. package/src/semantics/_code.css +50 -0
  56. package/src/semantics/_details.css +292 -0
  57. package/src/semantics/_dialog.css +163 -0
  58. package/src/semantics/_document.css +18 -0
  59. package/src/semantics/_embedded.css +41 -0
  60. package/src/semantics/_figure.css +13 -0
  61. package/src/semantics/_hidden.css +7 -0
  62. package/src/semantics/_hr.css +10 -0
  63. package/src/semantics/_input.css +306 -0
  64. package/src/semantics/_links.css +33 -0
  65. package/src/semantics/_main.css +3 -0
  66. package/src/semantics/_nav.css +116 -0
  67. package/src/semantics/_progress.css +62 -0
  68. package/src/semantics/_role-group-search.css +129 -0
  69. package/src/semantics/_role-toolbar.css +17 -0
  70. package/src/semantics/_role-tooltip.css +138 -0
  71. package/src/semantics/_section.css +6 -0
  72. package/src/semantics/_table.css +28 -0
  73. package/src/semantics/_type-checkbox-radio.css +142 -0
  74. package/src/semantics/_type-color.css +22 -0
  75. package/src/semantics/_type-date.css +40 -0
  76. package/src/semantics/_type-file.css +26 -0
  77. package/src/semantics/_type-range.css +90 -0
  78. package/src/semantics/_type-search.css +34 -0
  79. package/src/semantics/_typography.css +137 -0
  80. package/src/semantics/index.css +14 -0
  81. package/src/semantics/modules.css +35 -0
  82. package/src/sizes/slim.css +12 -0
  83. package/src/utilities/_variables.css +244 -0
  84. package/src/utilities/borders/_border-radius.css +216 -0
  85. package/src/utilities/borders/_border-style.css +39 -0
  86. package/src/utilities/borders/_border-width.css +39 -0
  87. package/src/utilities/colors/_background-colors.css +209 -0
  88. package/src/utilities/colors/_border-colors.css +69 -0
  89. package/src/utilities/colors/_text-colors.css +371 -0
  90. package/src/utilities/display/_display.css +259 -0
  91. package/src/utilities/display/_overflow.css +47 -0
  92. package/src/utilities/display/_visibility.css +27 -0
  93. package/src/utilities/effects/_opacity.css +19 -0
  94. package/src/utilities/effects/_shadows.css +48 -0
  95. package/src/utilities/effects/_transforms.css +11 -0
  96. package/src/utilities/index.css +14 -0
  97. package/src/utilities/layout/_flexbox.css +846 -0
  98. package/src/utilities/layout/_grid.css +51 -0
  99. package/src/utilities/layout/_misc.css +77 -0
  100. package/src/utilities/media/_object-fit.css +139 -0
  101. package/src/utilities/modules.css +56 -0
  102. package/src/utilities/positioning/_floats.css +72 -0
  103. package/src/utilities/positioning/_inset.css +47 -0
  104. package/src/utilities/positioning/_position.css +108 -0
  105. package/src/utilities/positioning/_z-index.css +19 -0
  106. package/src/utilities/sizing/_height.css +31 -0
  107. package/src/utilities/sizing/_width.css +31 -0
  108. package/src/utilities/spacing/_gap.css +393 -0
  109. package/src/utilities/spacing/_margin.css +1030 -0
  110. package/src/utilities/spacing/_padding.css +885 -0
  111. package/src/utilities/typography/_font-family.css +7 -0
  112. package/src/utilities/typography/_font-sizes.css +38 -0
  113. package/src/utilities/typography/_font-weight.css +51 -0
  114. package/src/utilities/typography/_text-alignment.css +141 -0
  115. package/src/variants/_card.css +41 -0
  116. package/src/variants/_container.css +36 -0
  117. package/src/variants/_contrast.css +50 -0
  118. package/src/variants/_ghost.css +58 -0
  119. package/src/variants/_secondary.css +38 -0
  120. package/src/variants/_striped.css +10 -0
  121. package/src/variants/index.css +6 -0
  122. package/src/variants/modules.css +12 -0
@@ -0,0 +1,7 @@
1
+ .font-family {
2
+ font-family: var(--font-family) !important;
3
+ }
4
+
5
+ .font-monospace {
6
+ font-family: var(--font-family-monospace) !important;
7
+ }
@@ -0,0 +1,38 @@
1
+ .fs-1 {
2
+ font-size: var(--fs-1) !important;
3
+ }
4
+
5
+ .fs-2 {
6
+ font-size: var(--fs-2) !important;
7
+ }
8
+
9
+ .fs-3 {
10
+ font-size: var(--fs-3) !important;
11
+ }
12
+
13
+ .fs-4 {
14
+ font-size: var(--fs-4) !important;
15
+ }
16
+
17
+ .fs-5 {
18
+ font-size: var(--fs-5) !important;
19
+ }
20
+
21
+ .fs-6 {
22
+ font-size: var(--fs-6) !important;
23
+ }
24
+
25
+ @media (min-width: 1200px) {
26
+ .fs-1 {
27
+ font-size: 2.5rem !important;
28
+ }
29
+ .fs-2 {
30
+ font-size: 2rem !important;
31
+ }
32
+ .fs-3 {
33
+ font-size: 1.75rem !important;
34
+ }
35
+ .fs-4 {
36
+ font-size: 1.5rem !important;
37
+ }
38
+ }
@@ -0,0 +1,51 @@
1
+ .fst-italic {
2
+ font-style: italic !important;
3
+ }
4
+
5
+ .fst-normal {
6
+ font-style: normal !important;
7
+ }
8
+
9
+ .fw-lighter {
10
+ font-weight: lighter !important;
11
+ }
12
+
13
+ .fw-light {
14
+ font-weight: 300 !important;
15
+ }
16
+
17
+ .fw-normal {
18
+ font-weight: 400 !important;
19
+ }
20
+
21
+ .fw-medium {
22
+ font-weight: 500 !important;
23
+ }
24
+
25
+ .fw-semibold {
26
+ font-weight: 600 !important;
27
+ }
28
+
29
+ .fw-bold {
30
+ font-weight: 700 !important;
31
+ }
32
+
33
+ .fw-bolder {
34
+ font-weight: bolder !important;
35
+ }
36
+
37
+ .lh-1 {
38
+ line-height: 1 !important;
39
+ }
40
+
41
+ .lh-sm {
42
+ line-height: 1.25 !important;
43
+ }
44
+
45
+ .lh-base {
46
+ line-height: 1.5 !important;
47
+ }
48
+
49
+ .lh-lg {
50
+ line-height: 2 !important;
51
+ }
@@ -0,0 +1,141 @@
1
+ .text-truncate {
2
+ overflow: hidden;
3
+ text-overflow: ellipsis;
4
+ white-space: nowrap;
5
+ }
6
+
7
+ .align-baseline {
8
+ vertical-align: baseline !important;
9
+ }
10
+
11
+ .align-top {
12
+ vertical-align: top !important;
13
+ }
14
+
15
+ .align-middle {
16
+ vertical-align: middle !important;
17
+ }
18
+
19
+ .align-bottom {
20
+ vertical-align: bottom !important;
21
+ }
22
+
23
+ .align-text-bottom {
24
+ vertical-align: text-bottom !important;
25
+ }
26
+
27
+ .align-text-top {
28
+ vertical-align: text-top !important;
29
+ }
30
+
31
+ .text-start {
32
+ text-align: left !important;
33
+ }
34
+
35
+ .text-end {
36
+ text-align: right !important;
37
+ }
38
+
39
+ .text-center {
40
+ text-align: center !important;
41
+ }
42
+
43
+ .text-decoration-none {
44
+ text-decoration: none !important;
45
+ }
46
+
47
+ .text-decoration-underline {
48
+ text-decoration: underline !important;
49
+ }
50
+
51
+ .text-decoration-line-through {
52
+ text-decoration: line-through !important;
53
+ }
54
+
55
+ .text-lowercase {
56
+ text-transform: lowercase !important;
57
+ }
58
+
59
+ .text-uppercase {
60
+ text-transform: uppercase !important;
61
+ }
62
+
63
+ .text-capitalize {
64
+ text-transform: capitalize !important;
65
+ }
66
+
67
+ .text-wrap {
68
+ white-space: normal !important;
69
+ }
70
+
71
+ .text-nowrap {
72
+ white-space: nowrap !important;
73
+ }
74
+
75
+ /* rtl:begin:remove */
76
+ .text-break {
77
+ word-wrap: break-word !important;
78
+ }
79
+
80
+ /* rtl:end:remove */
81
+
82
+ @media (min-width: 576px) {
83
+ .text-sm-start {
84
+ text-align: left !important;
85
+ }
86
+ .text-sm-end {
87
+ text-align: right !important;
88
+ }
89
+ .text-sm-center {
90
+ text-align: center !important;
91
+ }
92
+ }
93
+
94
+ @media (min-width: 768px) {
95
+ .text-md-start {
96
+ text-align: left !important;
97
+ }
98
+ .text-md-end {
99
+ text-align: right !important;
100
+ }
101
+ .text-md-center {
102
+ text-align: center !important;
103
+ }
104
+ }
105
+
106
+ @media (min-width: 992px) {
107
+ .text-lg-start {
108
+ text-align: left !important;
109
+ }
110
+ .text-lg-end {
111
+ text-align: right !important;
112
+ }
113
+ .text-lg-center {
114
+ text-align: center !important;
115
+ }
116
+ }
117
+
118
+ @media (min-width: 1200px) {
119
+ .text-xl-start {
120
+ text-align: left !important;
121
+ }
122
+ .text-xl-end {
123
+ text-align: right !important;
124
+ }
125
+ .text-xl-center {
126
+ text-align: center !important;
127
+ }
128
+ }
129
+
130
+ @media (min-width: 1400px) {
131
+ .text-xxl-start {
132
+ text-align: left !important;
133
+ }
134
+ .text-xxl-end {
135
+ text-align: right !important;
136
+ }
137
+ .text-xxl-center {
138
+ text-align: center !important;
139
+ }
140
+ }
141
+
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Card (.card)
3
+ * A container component for grouped content with visual card styling
4
+ * Can be applied to any element (article, div, section, etc.)
5
+ */
6
+ .card {
7
+ margin-bottom: var(--block-spacing-vertical);
8
+ padding: var(--block-spacing-vertical) var(--block-spacing-horizontal);
9
+ border-radius: var(--border-radius);
10
+ background: var(--card-bg);
11
+ box-shadow: var(--card-shadow);
12
+
13
+ & > header,
14
+ & > footer {
15
+ margin-right: calc(var(--block-spacing-horizontal) * -1);
16
+ margin-left: calc(var(--block-spacing-horizontal) * -1);
17
+ padding: calc(var(--block-spacing-vertical) * 0.66) var(--block-spacing-horizontal);
18
+ background-color: var(--card-section-bg);
19
+ }
20
+
21
+ & > header {
22
+ margin-top: calc(var(--block-spacing-vertical) * -1);
23
+ margin-bottom: var(--block-spacing-vertical);
24
+ border-bottom: var(--border-width) solid var(--card-border);
25
+ border-top-right-radius: var(--border-radius);
26
+ border-top-left-radius: var(--border-radius);
27
+ }
28
+
29
+ & > footer {
30
+ margin-top: var(--block-spacing-vertical);
31
+ margin-bottom: calc(var(--block-spacing-vertical) * -1);
32
+ border-top: var(--border-width) solid var(--card-border);
33
+ border-bottom-right-radius: var(--border-radius);
34
+ border-bottom-left-radius: var(--border-radius);
35
+ }
36
+
37
+ & > header > :last-child,
38
+ & > footer > :last-child {
39
+ margin-bottom: 0;
40
+ }
41
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Container
3
+ * Responsive width container with horizontal padding
4
+ */
5
+ .container,
6
+ .container-fluid {
7
+ width: 100%;
8
+ margin-right: auto;
9
+ margin-left: auto;
10
+ padding-right: var(--spacing);
11
+ padding-left: var(--spacing);
12
+ }
13
+
14
+ .container {
15
+ @media (min-width: 576px) {
16
+ max-width: 510px;
17
+ padding-right: 0;
18
+ padding-left: 0;
19
+ }
20
+
21
+ @media (min-width: 768px) {
22
+ max-width: 700px;
23
+ }
24
+
25
+ @media (min-width: 1024px) {
26
+ max-width: 950px;
27
+ }
28
+
29
+ @media (min-width: 1280px) {
30
+ max-width: 1200px;
31
+ }
32
+
33
+ @media (min-width: 1536px) {
34
+ max-width: 1450px;
35
+ }
36
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Contrast variant
3
+ * Used on links, buttons, and accordion elements
4
+ */
5
+
6
+ /* Links */
7
+ :where(a:not([role="button"])),
8
+ [role="link"] {
9
+ &.contrast {
10
+ --color-text: var(--color-contrast);
11
+ --underline: var(--color-contrast-underline);
12
+
13
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
14
+ --color-text: var(--color-contrast-hover);
15
+ --underline: var(--color-contrast-hover-underline);
16
+ }
17
+ }
18
+ }
19
+
20
+ /* Buttons */
21
+ :is(button, [type="submit"], [type="button"], [role="button"]) {
22
+ &.contrast {
23
+ --color-background: var(--color-contrast-bg);
24
+ --border-color: var(--color-contrast-border);
25
+ --color-text: var(--color-contrast-inverse);
26
+
27
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
28
+ --color-background: var(--color-contrast-hover-bg);
29
+ --border-color: var(--color-contrast-hover-border);
30
+ --color-text: var(--color-contrast-inverse);
31
+ }
32
+
33
+ &:focus,
34
+ &:is([aria-current]:not([aria-current="false"])):focus {
35
+ --shadow-lg: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--color-contrast-focus);
36
+ }
37
+ }
38
+ }
39
+
40
+ /* Accordion chevron dark mode override */
41
+ @media only screen and (prefers-color-scheme: dark) {
42
+ :root:not([data-theme]) details summary[role="button"].contrast::after,
43
+ :host(:not([data-theme])) details summary[role="button"].contrast::after {
44
+ filter: brightness(0);
45
+ }
46
+ }
47
+
48
+ [data-theme="dark"] details summary[role="button"].contrast::after {
49
+ filter: brightness(0);
50
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Ghost variant
3
+ * Transparent background with colored text/border
4
+ * Used on buttons and accordion elements
5
+ */
6
+
7
+ /* Buttons */
8
+ :is(button, [type="submit"], [type="button"], [role="button"]) {
9
+ &.ghost {
10
+ --color-background: transparent;
11
+ --color-text: var(--color-primary);
12
+ --border-color: var(--color-primary);
13
+
14
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
15
+ --color-background: transparent;
16
+ --color-text: var(--color-primary-hover);
17
+ --border-color: var(--color-primary-hover);
18
+ }
19
+
20
+ &.secondary {
21
+ --color-text: var(--color-secondary);
22
+ --border-color: var(--color-secondary);
23
+
24
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
25
+ --color-text: var(--color-secondary-hover);
26
+ --border-color: var(--color-secondary-hover);
27
+ }
28
+ }
29
+
30
+ &.contrast {
31
+ --color-text: var(--color-contrast);
32
+ --border-color: var(--color-contrast);
33
+
34
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
35
+ --color-text: var(--color-contrast-hover);
36
+ --border-color: var(--color-contrast-hover);
37
+ }
38
+ }
39
+ }
40
+ }
41
+
42
+ /* Reset buttons */
43
+ [type="reset"].ghost {
44
+ --color-background: transparent;
45
+ --color-text: var(--color-secondary);
46
+ --border-color: var(--color-secondary);
47
+
48
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
49
+ --color-text: var(--color-secondary-hover);
50
+ --border-color: var(--color-secondary-hover);
51
+ }
52
+ }
53
+
54
+ /* Accordion - ghost buttons have transparent backgrounds with colored text,
55
+ so the chevron should remain dark to match the text color */
56
+ details summary[role="button"].ghost::after {
57
+ filter: none;
58
+ }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Secondary variant
3
+ * Used on links, buttons, and form elements
4
+ */
5
+
6
+ /* Links */
7
+ :where(a:not([role="button"])),
8
+ [role="link"] {
9
+ &.secondary {
10
+ --color-text: var(--color-secondary);
11
+ --underline: var(--color-secondary-underline);
12
+
13
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
14
+ --color-text: var(--color-secondary-hover);
15
+ --underline: var(--color-secondary-hover-underline);
16
+ }
17
+ }
18
+ }
19
+
20
+ /* Buttons */
21
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary {
22
+ --color-background: var(--color-secondary-bg);
23
+ --border-color: var(--color-secondary-border);
24
+ --color-text: var(--color-secondary-inverse);
25
+
26
+ cursor: pointer;
27
+ }
28
+
29
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
30
+ --color-background: var(--color-secondary-hover-bg);
31
+ --border-color: var(--color-secondary-hover-border);
32
+ --color-text: var(--color-secondary-inverse);
33
+ }
34
+
35
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary:focus,
36
+ :is(button, [type="submit"], [type="button"], [role="button"]).secondary:is([aria-current]:not([aria-current="false"])):focus {
37
+ --shadow-lg: var(--button-shadow-hover, 0 0 0 rgba(0, 0, 0, 0)), 0 0 0 var(--outline-width) var(--color-secondary-focus);
38
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Striped variant
3
+ * Alternating row background colors for tables
4
+ */
5
+ table.striped tbody tr:nth-child(odd) {
6
+ & th,
7
+ & td {
8
+ background-color: var(--table-row-stripe-bg);
9
+ }
10
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Semanticus CSS Variants
3
+ * Class-based variant styles that extend semantic
4
+ */
5
+
6
+ @import "./modules.css";
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Semanticus CSS Variants
3
+ * Class-based variant styles that extend semantic elements
4
+ * Used by the full version which imports global variables, normalize, and semantics separately
5
+ */
6
+
7
+ @import "./_card.css";
8
+ @import "./_container.css";
9
+ @import "./_secondary.css";
10
+ @import "./_contrast.css";
11
+ @import "./_ghost.css";
12
+ @import "./_striped.css";