clairity.css 0.4.0 → 0.5.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +38 -1
- data/lib/assets/css/clairity/base.css +1 -1
- data/lib/assets/css/clairity/classes.css +21 -5
- data/lib/assets/css/clairity/components.css +76 -2
- data/lib/assets/css/clairity/cosmetic.css +27 -122
- data/lib/assets/css/clairity/icons.css +1 -0
- data/lib/assets/css/clairity/legacy.css +7 -0
- data/lib/assets/css/clairity/shims.css +42 -0
- data/lib/clairity.css/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c65c6029ccabe42eb67a360010a78668fa3c70710a1f39a855d362dea1dd7fa8
|
4
|
+
data.tar.gz: 82c3bdb27894954730a381bf55ea21b9b07737e95c7807314754377ec37aea14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e4baab2ddda8fd5c268d8975814e1066d774134e09bb618d3858e3bd2c36b8e558b264c354838429b8d234f2b90375b3b26de9eb4e967dece49ea720fa6bdb0
|
7
|
+
data.tar.gz: f20400f2e224b380cc1f189842bd44c806317eebeed85bdc8cc604073077fef047a24952a5c62b4a2d509b75f520abd31e1b02cd31adfe12a786c09bc36c8a89
|
data/CHANGELOG.md
CHANGED
@@ -29,6 +29,41 @@ This section is for recording changes committed since the last release.
|
|
29
29
|
### Security
|
30
30
|
|
31
31
|
|
32
|
+
## [v0.5.1] - 20230628
|
33
|
+
|
34
|
+
### Changed
|
35
|
+
|
36
|
+
* [classes.css]: decreased spacing between heading classes (like `.h1`) and the following paragraph - EXPERIMENTAL
|
37
|
+
|
38
|
+
### Fixed
|
39
|
+
|
40
|
+
* [cosmetic.css]: forgot to add `place-self: start` to checkbox/radio label
|
41
|
+
|
42
|
+
|
43
|
+
## [v0.5.0] - 20230628
|
44
|
+
|
45
|
+
### Added
|
46
|
+
|
47
|
+
* [icons.css]: `--i-crown` icon and the associated icon class in [classes.css]
|
48
|
+
* [cosmetic.css]: swap the grid placement of radio/checkboxes & their labels
|
49
|
+
* `components.html`: add a long label to one of the form fields and a checkbox field with a trailing label for visualization/testing
|
50
|
+
|
51
|
+
|
52
|
+
### Changed
|
53
|
+
|
54
|
+
* [base.css]: make `h5` and `h6` headers use `--regular` instead of `--bold` font weight for better visual balance with other heading styles
|
55
|
+
* also made the same change for `.h5` and `.h6` in [classes.css]
|
56
|
+
* [components.css]: from [cosmetic.css] (and originally in [states.css] for some reason), moved fieldset grid styles for browsers supporting `:has()` here
|
57
|
+
* [shims.css]: from [cosmetic.css] (and originally in [states.css] for some reason), moved form styles related to sectioning elements (`<section>`, `<p>`, and `<div>`) here
|
58
|
+
* in modern css (particularly with the advent of `:has()` and container queries), we shouldn't need these extra container divs, so [shims.css] is the right place to put them, since they're still not uncommon but shouldn't be encouraged going forward
|
59
|
+
|
60
|
+
|
61
|
+
### Fixed
|
62
|
+
|
63
|
+
* fixed alignment of bare checkboxes next to labels in the standard form grid, which got out of sync when labels became `inline-grid` with a default height
|
64
|
+
* [classes.css]: re-added common `.h1`, `.h2`, `.h3`, `.h4`, `.h5`, `.h6` styling (these were removed from [cosmetic.css] at some point, to be moved to a more appropriate spot, and then not added back in again)
|
65
|
+
|
66
|
+
|
32
67
|
## [v0.4.0] - 20230622
|
33
68
|
|
34
69
|
### Added
|
@@ -682,7 +717,9 @@ After a number of diversions, including developing a (as yet unreleased) Jekyll
|
|
682
717
|
- `palette.css` - separate out the color scheme into its own css file
|
683
718
|
|
684
719
|
|
685
|
-
[unreleased]: https://github.com/clairity/clairity.css/compare/v0.
|
720
|
+
[unreleased]: https://github.com/clairity/clairity.css/compare/v0.5.1...HEAD
|
721
|
+
[v0.5.1]: https://github.com/clairity/clairity.css/compare/v0.5.0...v0.5.1
|
722
|
+
[v0.5.0]: https://github.com/clairity/clairity.css/compare/v0.4.0...v0.5.0
|
686
723
|
[v0.4.0]: https://github.com/clairity/clairity.css/compare/v0.3.1...v0.4.0
|
687
724
|
[v0.3.1]: https://github.com/clairity/clairity.css/compare/v0.3.0...v0.3.1
|
688
725
|
[v0.3.0]: https://github.com/clairity/clairity.css/compare/v0.2.0...v0.3.0
|
@@ -168,7 +168,7 @@ h3 { --min-font: 1.375; --max-font: 1.667; }
|
|
168
168
|
h4 { --min-font: 1.25; --max-font: 1.5; }
|
169
169
|
h5 { --min-font: 1.125; --max-font: 1.25; }
|
170
170
|
h6 { --min-font: 1; --max-font: 1.125; }
|
171
|
-
h5, h6 { font-weight: var(--
|
171
|
+
h5, h6 { font-weight: var(--regular); } /* lighter --heading colors
|
172
172
|
typically need bolder font-weight for the smallest headings */
|
173
173
|
|
174
174
|
|
@@ -72,19 +72,26 @@ CLASSES - Here is where we first deviate from the classless CSS directive. We'll
|
|
72
72
|
|
73
73
|
|
74
74
|
/* -----------------------------------------------------------------------------
|
75
|
-
// #headings -
|
75
|
+
// #headings #h1 #h2 #h3 #h4 #h5 #h6 - allows changing visual heading hierarchy
|
76
|
+
independent of document outline. keep values in sync with those in base.css
|
76
77
|
// -------------------------------------------------------------------------- */
|
77
78
|
|
78
|
-
|
79
|
-
|
80
|
-
|
79
|
+
.h1, .h2, .h3, .h4, .h5, .h6 {
|
80
|
+
color: var(--heading);
|
81
|
+
font-weight: var(--lighter);
|
82
|
+
line-height: var(--compact);
|
83
|
+
margin: var(--margin);
|
84
|
+
font-size: var(--clamp, calc(var(--max-font) * 1rem));
|
85
|
+
}
|
86
|
+
|
87
|
+
/* fluid type scale settings for headings */
|
81
88
|
.h1 { --min-font: 1.75; --max-font: 2.5; }
|
82
89
|
.h2 { --min-font: 1.5; --max-font: 2; }
|
83
90
|
.h3 { --min-font: 1.375; --max-font: 1.667; }
|
84
91
|
.h4 { --min-font: 1.25; --max-font: 1.5; }
|
85
92
|
.h5 { --min-font: 1.125; --max-font: 1.25; }
|
86
93
|
.h6 { --min-font: 1; --max-font: 1.125; }
|
87
|
-
.h5, .h6 { font-weight: var(--
|
94
|
+
.h5, .h6 { font-weight: var(--regular); }
|
88
95
|
|
89
96
|
/* dampen the prominence of links in headings; keep in sync with cosmetic.css */
|
90
97
|
:where(.h1, .h2, .h3, .h4, .h5, .h6) :is(a, :visited) {
|
@@ -93,6 +100,14 @@ CLASSES - Here is where we first deviate from the classless CSS directive. We'll
|
|
93
100
|
text-decoration-style: dotted;
|
94
101
|
}
|
95
102
|
|
103
|
+
/* decrease space between headings and paragraphs - EXPERIMENTAL */
|
104
|
+
:is(.h1,.h2,.h3,.h4,.h5,.h6):has(+ p) {
|
105
|
+
margin-bottom: 0.25em;
|
106
|
+
}
|
107
|
+
:where(.h1,.h2,.h3,.h4,.h5,.h6) + p {
|
108
|
+
margin-top: 0.25em;
|
109
|
+
}
|
110
|
+
|
96
111
|
/* text providing extra detail to a heading. p-subtitle is a microformat
|
97
112
|
(plaintext) alternative class name for .subtitle
|
98
113
|
// .......................................................................... */
|
@@ -190,6 +205,7 @@ CLASSES - Here is where we first deviate from the classless CSS directive. We'll
|
|
190
205
|
.i-burger { --icon: var(--i-burger); }
|
191
206
|
.i-check { --icon: var(--i-check); }
|
192
207
|
.i-chevron { --icon: var(--i-chevron); }
|
208
|
+
.i-crown { --icon: var(--i-crown); }
|
193
209
|
.i-dash { --icon: var(--i-dash); }
|
194
210
|
.i-edit { --icon: var(--i-edit); }
|
195
211
|
.i-home-edit { --icon: var(--i-home-edit); }
|
@@ -906,8 +906,11 @@ selectmenu::part(listbox) {
|
|
906
906
|
}
|
907
907
|
}
|
908
908
|
|
909
|
-
|
910
|
-
|
909
|
+
|
910
|
+
/* -----------------------------------------------------------------------------
|
911
|
+
// #form #grid - general purpose 2-column grid, as used on forms by default
|
912
|
+
// -------------------------------------------------------------------------- */
|
913
|
+
|
911
914
|
.form.grid {
|
912
915
|
display: grid;
|
913
916
|
grid-template-columns: [labels full-start] 3fr [elements] 7fr [full-end];
|
@@ -939,6 +942,77 @@ selectmenu::part(listbox) {
|
|
939
942
|
}
|
940
943
|
|
941
944
|
|
945
|
+
/* -----------------------------------------------------------------------------
|
946
|
+
// #fieldset #grid - form grid for fieldsets for browsers that support :has()
|
947
|
+
// -------------------------------------------------------------------------- */
|
948
|
+
|
949
|
+
@supports selector(:has(*)) {
|
950
|
+
/* set up a form grid on fieldsets that include form elements */
|
951
|
+
fieldset:where(:has(label, input, button, textarea, select, fieldset)) {
|
952
|
+
margin: 0;
|
953
|
+
display: grid;
|
954
|
+
grid-template-columns:[labels full-start] 3fr [elements] 7fr [full-end];
|
955
|
+
gap: var(--m);
|
956
|
+
}
|
957
|
+
/* for fieldsets containing <p> tags that encompass checkboxes/radios, but no
|
958
|
+
other form inputs, remove extraneous gap between label and element */
|
959
|
+
fieldset:where(:has(p :is([type='checkbox'], [type='radio'])):not(:has(select,
|
960
|
+
textarea, [type="text"], [type="date"], [type="email"], [type="password"],
|
961
|
+
[type="datetime-local"], [type="search"]))) {
|
962
|
+
row-gap: 0;
|
963
|
+
}
|
964
|
+
/* since grid properties fall through p tags, assign margin-top to first child
|
965
|
+
elements to get a gap between paragraphs of different input types */
|
966
|
+
fieldset p:has([type='checkbox'], [type='radio']) + p:has([type='radio'],
|
967
|
+
[type='checkbox']) :is([type='radio'], [type='checkbox'],
|
968
|
+
label):first-of-type {
|
969
|
+
margin-top: var(--m);
|
970
|
+
}
|
971
|
+
/* chrome/edge doesn't support subgrid, so pierce the grid barrier instead */
|
972
|
+
fieldset :where(p:has(label, input, button, textarea, select, fieldset)) {
|
973
|
+
display: contents;
|
974
|
+
}
|
975
|
+
/* labels go on the labels gridline */
|
976
|
+
:where(fieldset :is(p, div)) label {
|
977
|
+
grid-column: labels;
|
978
|
+
}
|
979
|
+
/* lists that contain radios/checkboxes go on the elements gridline */
|
980
|
+
form:has(fieldset :where(select, textarea, [type="text"], [type="date"],
|
981
|
+
[type="email"], [type="password"], [type="datetime-local"],
|
982
|
+
[type="search"])) fieldset ul:has(li label :where([type='radio'],
|
983
|
+
[type='checkbox'])) {
|
984
|
+
grid-column: elements;
|
985
|
+
}
|
986
|
+
|
987
|
+
/* inputs on the elements gridline; pad right side away from fieldset line */
|
988
|
+
:where(fieldset) :where(p):has(input, button, textarea, select, fieldset)
|
989
|
+
:where(input:not(:is([type='checkbox'],[type='radio']), button,
|
990
|
+
textarea, select, fieldset)) {
|
991
|
+
grid-column: elements;
|
992
|
+
margin-right: var(--m);
|
993
|
+
}
|
994
|
+
/* for radios & checks, invert the placement of the input and label */
|
995
|
+
/* NOTE: align-self & justify-self are not properly supported for grid by IE
|
996
|
+
anyway, so just use the combined property `place-self` here */
|
997
|
+
:where(fieldset) :where(p):has(label) :where([type='checkbox'],
|
998
|
+
[type='radio']):has(+ label) {
|
999
|
+
grid-column: labels;
|
1000
|
+
place-self: center end;
|
1001
|
+
}
|
1002
|
+
:where(fieldset p:has(label) :is([type='checkbox'],
|
1003
|
+
[type='radio']):has(+ label)) + label {
|
1004
|
+
grid-column: elements;
|
1005
|
+
justify-self: start;
|
1006
|
+
}
|
1007
|
+
/* for paragraph tags that aren't form element containers, span the grid */
|
1008
|
+
:where(fieldset) :where(p, div, h2, h3, h4, h5, h6):not(:has(label, input,
|
1009
|
+
button, textarea, select, fieldset)) {
|
1010
|
+
display: block;
|
1011
|
+
grid-column: full;
|
1012
|
+
}
|
1013
|
+
}
|
1014
|
+
|
1015
|
+
|
942
1016
|
/* -----------------------------------------------------------------------------
|
943
1017
|
// #progressbar - a circular progress bar component - from almond.css
|
944
1018
|
// -------------------------------------------------------------------------- */
|
@@ -49,7 +49,8 @@ nav > menu > li { display: inline; } /* only direct children, as menu
|
|
49
49
|
margin: 0;
|
50
50
|
}
|
51
51
|
|
52
|
-
/* dampen the prominence of links in headings
|
52
|
+
/* dampen the prominence of links in headings - needs to be [0010] specificity
|
53
|
+
to override the :visited default */
|
53
54
|
:where(h1, h2, h3, h4, h5, h6) :is(a, :visited) {
|
54
55
|
color: var(--heading);
|
55
56
|
font-weight: unset;
|
@@ -149,19 +150,14 @@ tfoot :where(td, th) {box-shadow: inset 0 2px var(--secondary, --neutral);}
|
|
149
150
|
// #forms - for submitting data to the server
|
150
151
|
// -------------------------------------------------------------------------- */
|
151
152
|
|
152
|
-
/* #form #section #p #div - would prefer subgrid to have containers layout
|
153
|
-
contents on the grid, but its not yet supported by chrome/edge. use
|
154
|
-
display: contents; to pierce the grid instead - [0002] specificity
|
155
|
-
// .......................................................................... */
|
156
|
-
form section, form p, form div { /* TODO: should be a shim eventually */
|
157
|
-
display: contents; /* make contents align to form grid */
|
158
|
-
margin: 0; /* let contents, not container, set spacing */
|
159
|
-
container-type: unset; /*let contents adjust to outer form container*/
|
160
|
-
}
|
161
153
|
/* #h2 - make form headers/paragraphs span the full width - [0002] specificity*/
|
162
154
|
form h2, form p { grid-column: full; }
|
163
155
|
|
164
|
-
/* #
|
156
|
+
/* #form #ul - since lists in forms typically list out form controls, remove
|
157
|
+
the bullet styling from them - [0002] specificity */
|
158
|
+
form ul { list-style: none; }
|
159
|
+
|
160
|
+
/* #fieldset should span full form grid in narrower form containers
|
165
161
|
// .......................................................................... */
|
166
162
|
@container form (width <= 35rem) {
|
167
163
|
fieldset {
|
@@ -177,121 +173,19 @@ form h2, form p { grid-column: full; }
|
|
177
173
|
}
|
178
174
|
}
|
179
175
|
|
180
|
-
|
181
|
-
|
176
|
+
fieldset > :last-child { /* #fieldset - [0002] specificity */
|
177
|
+
margin-bottom: 0;
|
178
|
+
}
|
179
|
+
|
180
|
+
/* #label becomes inline-grid to take full row --height - EXPERIMENTAL
|
181
|
+
// TODO: fix label-to-textarea baseline alignment
|
182
182
|
// .......................................................................... */
|
183
183
|
label {
|
184
184
|
display: inline-grid;
|
185
185
|
grid-auto-flow: column;
|
186
186
|
height: var(--height);
|
187
|
-
align-content: center;
|
188
|
-
}
|
189
|
-
|
190
|
-
/* TEMP: moved from states.css ++++++++++++++++++++++++++++++++++++++++++++++ */
|
191
|
-
/* #form #ul - since lists in forms typically list out form controls, remove
|
192
|
-
the bullet styling from them - [0002] specificity */
|
193
|
-
form ul { list-style: none; }
|
194
|
-
|
195
|
-
/* #form #section #p #div - extend the subgrid into common, but strictly
|
196
|
-
// non-semantic, container elements used within forms - subgrid is firefox 71+ &
|
197
|
-
// safari 16+ only 20221001
|
198
|
-
// .......................................................................... */
|
199
|
-
@supports (grid-template-columns: subgrid) {
|
200
|
-
/* :where() can be used here, since @supports is also a recent addition */
|
201
|
-
form :where(section, p, div) { /* [0001] specificity */
|
202
|
-
grid-column: full;
|
203
|
-
display: grid;
|
204
|
-
grid-template-columns: subgrid;
|
205
|
-
gap: inherit;
|
206
|
-
}
|
207
|
-
|
208
|
-
/* TEMP: swap the grid placement of radio/checkboxes & their labels */
|
209
|
-
:where(form) :where(section, p, div) :is([type='checkbox'], [type='radio']) {
|
210
|
-
grid-column: labels;
|
211
|
-
justify-self: right;
|
212
|
-
}
|
213
|
-
:where(form) :is(:where(section, p, div)
|
214
|
-
:is([type='checkbox'], [type='radio'])+label) {
|
215
|
-
grid-column: elements;
|
216
|
-
justify-self: left;
|
217
|
-
}
|
218
|
-
}
|
219
|
-
/*form section :where(h1,h2,h3,h4,h5,h6) + p { display: block; }*/
|
220
|
-
|
221
|
-
/* chrome/edge doesn't support subgrid yet but does support :has() & :where() */
|
222
|
-
@supports selector(:has(*)) {
|
223
|
-
/* set up a form grid on fieldsets that include form elements */
|
224
|
-
fieldset:where(:has(label, input, button, textarea, select, fieldset)) {
|
225
|
-
margin: 0;
|
226
|
-
display: grid;
|
227
|
-
grid-template-columns:[labels full-start] 3fr [elements] 7fr [full-end];
|
228
|
-
gap: var(--m);
|
229
|
-
}
|
230
|
-
/* for fieldsets containing <p> tags that encompass checkboxes/radios, but no
|
231
|
-
other form inputs, remove extraneous gap between label and element */
|
232
|
-
fieldset:where(:has(p :is([type='checkbox'], [type='radio'])):not(:has(select,
|
233
|
-
textarea, [type="text"], [type="date"], [type="email"], [type="password"],
|
234
|
-
[type="datetime-local"], [type="search"]))) {
|
235
|
-
row-gap: 0;
|
236
|
-
}
|
237
|
-
/* since grid properties fall through p tags, assign margin-top to first child
|
238
|
-
elements to get a gap between paragraphs of different input types */
|
239
|
-
fieldset p:has([type='checkbox'], [type='radio']) + p:has([type='radio'],
|
240
|
-
[type='checkbox']) :is([type='radio'], [type='checkbox'],
|
241
|
-
label):first-of-type {
|
242
|
-
margin-top: var(--m);
|
243
|
-
}
|
244
|
-
/* chrome/edge doesn't support subgrid, so pierce the grid barrier instead */
|
245
|
-
fieldset :where(p:has(label, input, button, textarea, select, fieldset)) {
|
246
|
-
display: contents;
|
247
|
-
}
|
248
|
-
/* labels go on the labels gridline */
|
249
|
-
:where(fieldset :is(p, div)) label {
|
250
|
-
grid-column: labels;
|
251
|
-
}
|
252
|
-
/* lists that contain radios/checkboxes go on the elements gridline */
|
253
|
-
form:has(fieldset :where(select, textarea, [type="text"], [type="date"],
|
254
|
-
[type="email"], [type="password"], [type="datetime-local"],
|
255
|
-
[type="search"])) fieldset ul:has(li label :where([type='radio'],
|
256
|
-
[type='checkbox'])) {
|
257
|
-
grid-column: elements;
|
258
|
-
}
|
259
|
-
|
260
|
-
/* inputs on the elements gridline; pad right side away from fieldset line */
|
261
|
-
:where(fieldset) :where(p):has(input, button, textarea, select, fieldset)
|
262
|
-
:where(input:not(:is([type='checkbox'],[type='radio']), button,
|
263
|
-
textarea, select, fieldset)) {
|
264
|
-
grid-column: elements;
|
265
|
-
margin-right: var(--m);
|
266
|
-
}
|
267
|
-
/* for radios & checks, invert the placement of the input and label */
|
268
|
-
/* NOTE: align-self & justify-self are not properly supported for grid by IE
|
269
|
-
anyway, so just use the combined property `place-self` here */
|
270
|
-
:where(fieldset) :where(p):has(label) :where([type='checkbox'],
|
271
|
-
[type='radio']):has(+ label) {
|
272
|
-
grid-column: labels;
|
273
|
-
place-self: center end;
|
274
|
-
}
|
275
|
-
:where(fieldset p:has(label) :is([type='checkbox'],
|
276
|
-
[type='radio']):has(+ label)) + label {
|
277
|
-
grid-column: elements;
|
278
|
-
justify-self: start;
|
279
|
-
}
|
280
|
-
/* for paragraph tags that aren't form element containers, span the grid */
|
281
|
-
:where(fieldset) :where(p, div, h2, h3, h4, h5, h6):not(:has(label, input,
|
282
|
-
button, textarea, select, fieldset)) {
|
283
|
-
display: block;
|
284
|
-
grid-column: full;
|
285
|
-
}
|
187
|
+
align-content: center; /* works with inline-grid */
|
286
188
|
}
|
287
|
-
/*form :where(fieldset, input, select, button, input[type="button"]) {
|
288
|
-
grid-column: elements;
|
289
|
-
}*/
|
290
|
-
|
291
|
-
fieldset > :last-child {
|
292
|
-
margin-bottom: 0;
|
293
|
-
}
|
294
|
-
/* END: moved from states.css +++++++++++++++++++++++++++++++++++++++++++++++ */
|
295
189
|
|
296
190
|
|
297
191
|
/* -----------------------------------------------------------------------------
|
@@ -323,12 +217,23 @@ label:where(:has(+ [multiple],+ textarea,+ select[size])){/*[0001] specificity*/
|
|
323
217
|
only understands simple :has() selectors, so can't use the direct descendent
|
324
218
|
selector > here until it understands it - [0011] specificity
|
325
219
|
// .......................................................................... */
|
326
|
-
label:has([type=
|
220
|
+
label:has([type='checkbox']) {
|
327
221
|
grid-column: elements;
|
328
222
|
justify-self: left;
|
329
223
|
}
|
330
224
|
|
331
|
-
|
225
|
+
/* swap the grid placement of radio/checkboxes & their labels */
|
226
|
+
:where(form) :is([type='checkbox'], [type='radio']) {
|
227
|
+
grid-column: labels;
|
228
|
+
place-self: center end;
|
229
|
+
}
|
230
|
+
|
231
|
+
:where(form) :is([type='checkbox'], [type='radio']) + label {
|
232
|
+
grid-column: elements;
|
233
|
+
place-self: center start;
|
234
|
+
}
|
235
|
+
|
236
|
+
label + [type='image'] {
|
332
237
|
max-height: var(--height);
|
333
238
|
object-fit: contain;
|
334
239
|
vertical-align: middle;
|
@@ -23,6 +23,7 @@
|
|
23
23
|
--i-browser: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><title>browser</title><path stroke='none' d='M0 0h24v24H0z' fill='none'/><rect x='4' y='4' width='16' height='16' rx='1' /><line x1='4' y1='8' x2='20' y2='8' /><line x1='8' y1='4' x2='8' y2='8' /></svg>");
|
24
24
|
--i-calendar: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><title>calendar</title><path stroke='none' d='M0 0h24v24H0z' fill='none'/><rect x='4' y='5' width='16' height='16' rx='2' /><line x1='16' y1='3' x2='16' y2='7' /><line x1='8' y1='3' x2='8' y2='7' /><line x1='4' y1='11' x2='20' y2='11' /><line x1='11' y1='15' x2='12' y2='15' /><line x1='12' y1='15' x2='12' y2='18' /></svg>");
|
25
25
|
--i-calendar-time: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><title>calendar time</title><path stroke='none' d='M0 0h24v24H0z' fill='none'/><path d='M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4' /><circle cx='18' cy='18' r='4' /><path d='M15 3v4' /><path d='M7 3v4' /><path d='M3 11h16' /><path d='M18 16.496v1.504l1 1' /></svg>");
|
26
|
+
--i-crown: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><title>crown</title><path stroke='none' d='M0 0h24v24H0z' fill='none'/><path d='M12 6l4 6l5 -4l-2 10h-14l-2 -10l5 4z' /></svg>");
|
26
27
|
--i-external-link: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><title>external link</title><path stroke='none' d='M0 0h24v24H0z' fill='none'/><path d='M11 7h-5a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-5' /><line x1='10' y1='14' x2='20' y2='4' /><polyline points='15 4 20 4 20 9' /></svg>");
|
27
28
|
--i-edit: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><title>edit</title><path stroke='none' d='M0 0h24v24H0z' fill='none'/><path d='M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1' /><path d='M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z' /><path d='M16 5l3 3' /></svg>");
|
28
29
|
--i-file: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><title>file</title><path stroke='none' d='M0 0h24v24H0z' fill='none'/><path d='M14 3v4a1 1 0 0 0 1 1h4' /><path d='M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z' /></svg>");
|
@@ -34,6 +34,13 @@ body > *:not(.fluid) {
|
|
34
34
|
}}
|
35
35
|
|
36
36
|
|
37
|
+
/* -----------------------------------------------------------------------------
|
38
|
+
// #forms -
|
39
|
+
// -------------------------------------------------------------------------- */
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|
37
44
|
/* -----------------------------------------------------------------------------
|
38
45
|
// #card -
|
39
46
|
// -------------------------------------------------------------------------- */
|
@@ -6,6 +6,48 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
+
/* -----------------------------------------------------------------------------
|
10
|
+
// #forms - for submitting data to the server
|
11
|
+
// -------------------------------------------------------------------------- */
|
12
|
+
|
13
|
+
|
14
|
+
/* #form #section #p #div - would prefer subgrid to have containers layout
|
15
|
+
contents on the grid, but its not yet supported by chrome/edge. use
|
16
|
+
display: contents; to pierce the grid instead - [0002] specificity
|
17
|
+
// .......................................................................... */
|
18
|
+
form section, form p, form div {
|
19
|
+
display: contents; /* make contents align to form grid */
|
20
|
+
margin: 0; /* let contents, not container, set spacing */
|
21
|
+
container-type: unset; /*let contents adjust to outer form container*/
|
22
|
+
}
|
23
|
+
|
24
|
+
/* #form #section #p #div - extend the subgrid into common, but strictly
|
25
|
+
non-semantic, container elements used within forms - subgrid is firefox 71+ &
|
26
|
+
safari 16+ only 20221001
|
27
|
+
// .......................................................................... */
|
28
|
+
@supports (grid-template-columns: subgrid) {
|
29
|
+
/* :where() can be used here, since @supports is also a recent addition */
|
30
|
+
form :where(section, p, div) { /* [0001] specificity */
|
31
|
+
grid-column: full;
|
32
|
+
display: grid;
|
33
|
+
grid-template-columns: subgrid;
|
34
|
+
gap: inherit;
|
35
|
+
}
|
36
|
+
|
37
|
+
/* TEMP: swap the grid placement of radio/checkboxes & their labels */
|
38
|
+
:where(form) :where(section, p, div) :is([type='checkbox'], [type='radio']) {
|
39
|
+
grid-column: labels;
|
40
|
+
justify-self: right;
|
41
|
+
}
|
42
|
+
:where(form) :is(:where(section, p, div)
|
43
|
+
:is([type='checkbox'], [type='radio'])+label) {
|
44
|
+
grid-column: elements;
|
45
|
+
justify-self: left;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
/*form section :where(h1,h2,h3,h4,h5,h6) + p { display: block; }*/
|
49
|
+
|
50
|
+
|
9
51
|
/* -----------------------------------------------------------------------------
|
10
52
|
// #card - add class-based versions of cards
|
11
53
|
// -------------------------------------------------------------------------- */
|
data/lib/clairity.css/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clairity.css
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- clairity
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-06-
|
11
|
+
date: 2023-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|