Skip to content

Commit 4202f3a

Browse files
committed
Release v1.1.0
1 parent 030d65b commit 4202f3a

File tree

4 files changed

+86
-56
lines changed

4 files changed

+86
-56
lines changed

CHANGELOG.md

+21
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# Spruce CSS Changelog
22

3+
## v1.1.0 (2022-11-05)
4+
5+
### Improvements
6+
- Rework the focus states by adding `focus-ring()` mixin to control the different variations of focus states.
7+
- Add variables related to focus.
8+
- Make `$font-size-lead` responsive by default.
9+
- Add `$form-check-checkbox-border-radius` variable.
10+
- Change `$form-switch-margin-bottom variable` to `$form-switch-margin-block-start`.
11+
- Handle null values at color mixin.
12+
- Hack that date/time input height in webkit.
13+
14+
### New features
15+
- Add `$form-check-vertical-alignment` variable add `.form-check--vertical-center` and `.form-check--vertical-start`.
16+
- Add `$table-caption-*` variables.
17+
18+
### Breaking changes
19+
20+
Although this is not a major feature, some moderate breaking changes can be related to the `focus-ring()` mixin and its colors.
21+
22+
And other smaller modifications and fixes.
23+
324
## v1.0.3 (2022-09-15)
425

526
### Bugfix

css/spruce.css

+63-54
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ template {
320320
--spruce-base-color-mark-background: hsl(50deg, 100%, 80%);
321321
--spruce-base-color-mark-foreground: hsl(205deg, 100%, 2%);
322322
--spruce-base-color-marker: hsl(262deg, 71%, 49%);
323-
--spruce-base-color-code-background: #f0e9fb;
323+
--spruce-base-color-code-background: #f6f2fd;
324324
--spruce-base-color-code-foreground: hsl(205deg, 100%, 2%);
325325
--spruce-base-color-blockquote-border: hsl(262deg, 71%, 49%);
326326
}
@@ -339,15 +339,9 @@ template {
339339

340340
:root {
341341
--spruce-btn-color-primary-background: hsl(262deg, 71%, 49%);
342-
--spruce-btn-color-primary-background-hover: #511daa;
343342
--spruce-btn-color-primary-foreground: hsl(0deg, 0%, 100%);
344-
--spruce-btn-color-primary-foreground-hover: hsl(0deg, 0%, 100%);
345-
--spruce-btn-color-primary-shadow-focus: rgba(101, 36, 214, 0.25);
346343
--spruce-btn-color-secondary-background: hsl(227deg, 92%, 55%);
347-
--spruce-btn-color-secondary-background-hover: #0937dc;
348344
--spruce-btn-color-secondary-foreground: hsl(0deg, 0%, 100%);
349-
--spruce-btn-color-secondary-foreground-hover: hsl(0deg, 0%, 100%);
350-
--spruce-btn-color-secondary-shadow-focus: rgba(35, 80, 246, 0.25);
351345
}
352346

353347
:root {
@@ -356,21 +350,22 @@ template {
356350
--spruce-form-color-border: hsl(260deg, 4%, 70%);
357351
--spruce-form-color-border-disabled: hsl(0deg, 0%, 90%);
358352
--spruce-form-color-border-focus: hsl(262deg, 71%, 49%);
359-
--spruce-form-color-shadow-focus: rgba(101, 36, 214, 0.25);
353+
--spruce-form-color-ring-focus: rgba(101, 36, 214, 0.25);
360354
--spruce-form-color-check-foreground: hsl(0deg, 0%, 100%);
361355
--spruce-form-color-check-background: hsl(262deg, 71%, 49%);
356+
--spruce-form-color-check-focus-ring: hsl(262deg, 71%, 49%);
362357
--spruce-form-color-invalid: hsl(0deg, 71%, 51%);
363-
--spruce-form-color-invalid-shadow: rgba(219, 41, 41, 0.25);
358+
--spruce-form-color-invalid-focus-ring: rgba(219, 41, 41, 0.25);
364359
--spruce-form-color-label: hsl(205deg, 100%, 2%);
365360
--spruce-form-color-legend: hsl(205deg, 100%, 2%);
366361
--spruce-form-color-placeholder: hsl(208deg, 7%, 40%);
367362
--spruce-form-color-range-thumb-background: hsl(262deg, 71%, 49%);
368-
--spruce-form-color-range-thumb-shadow: rgba(101, 36, 214, 0.25);
363+
--spruce-form-color-range-thumb-focus-ring: hsl(262deg, 71%, 49%);
369364
--spruce-form-color-range-track-background: hsl(0deg, 0%, 90%);
370365
--spruce-form-color-text: hsl(208deg, 7%, 30%);
371366
--spruce-form-color-select-foreground: hsl(205deg, 100%, 2%);
372367
--spruce-form-color-valid: hsl(150deg, 100%, 33%);
373-
--spruce-form-color-valid-shadow: rgba(0, 168, 84, 0.25);
368+
--spruce-form-color-valid-focus-ring: rgba(0, 168, 84, 0.25);
374369
}
375370

376371
:root {
@@ -548,17 +543,17 @@ figure figcaption {
548543
}
549544
.table--sm th,
550545
.table--sm td {
551-
padding: 0.25rem 0.5rem;
546+
padding: 0.5rem;
552547
}
553548
.table--rounded th:first-child,
554549
.table--rounded td:first-child {
555-
border-end-start-radius: 0.925rem;
556-
border-start-start-radius: 0.925rem;
550+
border-end-start-radius: 0.425rem;
551+
border-start-start-radius: 0.425rem;
557552
}
558553
.table--rounded th:last-child,
559554
.table--rounded td:last-child {
560-
border-end-end-radius: 0.925rem;
561-
border-start-end-radius: 0.925rem;
555+
border-end-end-radius: 0.425rem;
556+
border-start-end-radius: 0.425rem;
562557
}
563558

564559
html {
@@ -738,7 +733,7 @@ samp {
738733
}
739734

740735
.lead {
741-
font-size: 1.25rem;
736+
font-size: clamp(1.1rem, 2vw, 1.25rem);
742737
}
743738

744739
/* stylelint-disable */
@@ -815,25 +810,25 @@ samp {
815810
color: var(--spruce-btn-color-primary-foreground);
816811
}
817812
.btn--primary:hover {
818-
background-color: var(--spruce-btn-color-primary-background-hover);
819-
color: var(--spruce-btn-color-primary-foreground-hover);
813+
background-color: #511daa;
814+
color: var(--spruce-btn-color-primary-foreground);
820815
}
821-
.btn--primary:focus {
822-
box-shadow: 0 0 0 0.25rem var(--spruce-btn-color-primary-shadow-focus);
823-
outline: 2px solid transparent;
816+
.btn--primary:focus-visible {
817+
outline: 2px solid var(--spruce-btn-color-primary-background);
818+
outline-offset: 2px;
824819
}
825820

826821
.btn--secondary {
827822
background-color: var(--spruce-btn-color-secondary-background);
828823
color: var(--spruce-btn-color-secondary-foreground);
829824
}
830825
.btn--secondary:hover {
831-
background-color: var(--spruce-btn-color-secondary-background-hover);
832-
color: var(--spruce-btn-color-secondary-foreground-hover);
826+
background-color: #0937dc;
827+
color: var(--spruce-btn-color-secondary-foreground);
833828
}
834-
.btn--secondary:focus {
835-
box-shadow: 0 0 0 0.25rem var(--spruce-btn-color-secondary-shadow-focus);
836-
outline: 2px solid transparent;
829+
.btn--secondary:focus-visible {
830+
outline: 2px solid var(--spruce-btn-color-secondary-background);
831+
outline-offset: 2px;
837832
}
838833

839834
.form-file::-webkit-file-upload-button {
@@ -946,12 +941,12 @@ samp {
946941
margin-inline-end: 1rem;
947942
}
948943
.form-file::-webkit-file-upload-button:hover {
949-
background-color: var(--spruce-btn-color-primary-background-hover);
950-
color: var(--spruce-btn-color-primary-foreground-hover);
944+
background-color: #511daa;
945+
color: var(--spruce-btn-color-primary-foreground);
951946
}
952947
.form-file::file-selector-button:hover {
953-
background-color: var(--spruce-btn-color-primary-background-hover);
954-
color: var(--spruce-btn-color-primary-foreground-hover);
948+
background-color: #511daa;
949+
color: var(--spruce-btn-color-primary-foreground);
955950
}
956951

957952
.form-label {
@@ -966,6 +961,7 @@ samp {
966961
}
967962

968963
.form-control {
964+
--webkit-date-line-height: 1.375;
969965
-webkit-appearance: none;
970966
-moz-appearance: none;
971967
appearance: none;
@@ -989,9 +985,12 @@ samp {
989985
.form-control::placeholder {
990986
color: var(--spruce-form-color-placeholder);
991987
}
988+
.form-control::-webkit-datetime-edit {
989+
line-height: var(--webkit-date-line-height);
990+
}
992991
.form-control:focus {
993992
border-color: var(--spruce-form-color-border-focus);
994-
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-shadow-focus);
993+
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-ring-focus);
995994
outline: 2px solid transparent;
996995
}
997996
.form-control[type=color] {
@@ -1036,7 +1035,7 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid {
10361035
}
10371036
.form-control--valid:focus {
10381037
border-color: var(--spruce-form-color-valid);
1039-
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-valid-shadow);
1038+
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-valid-focus-ring);
10401039
outline: 2px solid transparent;
10411040
}
10421041
.form-control--invalid {
@@ -1045,10 +1044,11 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid {
10451044
}
10461045
.form-control--invalid:focus {
10471046
border-color: var(--spruce-form-color-invalid);
1048-
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-invalid-shadow);
1047+
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-invalid-focus-ring);
10491048
outline: 2px solid transparent;
10501049
}
10511050
.form-control--sm {
1051+
--webkit-date-line-height: 1.36;
10521052
font-size: 0.9rem;
10531053
padding: 0.25em 0.5em;
10541054
}
@@ -1057,6 +1057,7 @@ html[dir=rtl] .form-control--valid, html[dir=rtl] .form-control--invalid {
10571057
padding: 0.25em;
10581058
}
10591059
.form-control--lg {
1060+
--webkit-date-line-height: 1.387;
10601061
font-size: 1.1rem;
10611062
padding: 0.65em 1em;
10621063
}
@@ -1083,6 +1084,14 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) {
10831084
gap: 0.5rem;
10841085
}
10851086

1087+
.form-check--vertical-center {
1088+
align-items: center;
1089+
}
1090+
1091+
.form-check--vertical-start {
1092+
align-items: flex-start;
1093+
}
1094+
10861095
.form-check--sm .form-check__control {
10871096
font-size: 1rem;
10881097
}
@@ -1104,8 +1113,8 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) {
11041113
font-size: 1.125rem;
11051114
height: 1em;
11061115
line-height: 1;
1107-
-webkit-margin-after: -0.1em;
1108-
margin-block-end: -0.1em;
1116+
-webkit-margin-before: 0.1em;
1117+
margin-block-start: 0.1em;
11091118
transition-duration: var(--spruce-transition-duration);
11101119
transition-property: border, box-shadow;
11111120
transition-timing-function: var(--spruce-transition-timing-function);
@@ -1117,10 +1126,9 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) {
11171126
.form-check__control[type=checkbox] {
11181127
border-radius: 0.425rem;
11191128
}
1120-
.form-check__control:focus {
1121-
border-color: var(--spruce-form-color-border-focus);
1122-
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-shadow-focus);
1123-
outline: 2px solid transparent;
1129+
.form-check__control:focus-visible {
1130+
outline: 2px solid var(--spruce-form-color-check-focus-ring);
1131+
outline-offset: 2px;
11241132
}
11251133
.form-check__control:checked {
11261134
background-color: var(--spruce-form-color-check-background);
@@ -1183,17 +1191,16 @@ html[dir=rtl] select.form-control:not([multiple]):not([size]) {
11831191
font-size: 1.125rem;
11841192
height: 1em;
11851193
line-height: 1;
1186-
-webkit-margin-after: -0.1em;
1187-
margin-block-end: -0.1em;
1194+
-webkit-margin-before: 0.25em;
1195+
margin-block-start: 0.25em;
11881196
transition-duration: var(--spruce-transition-duration);
1189-
transition-property: background-position border, box-shadow;
1197+
transition-property: background-position, border, box-shadow;
11901198
transition-timing-function: var(--spruce-transition-timing-function);
11911199
width: 2em;
11921200
}
1193-
.form-switch__control:focus {
1194-
border-color: var(--spruce-form-color-border-focus);
1195-
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-shadow-focus);
1196-
outline: 2px solid transparent;
1201+
.form-switch__control:focus-visible {
1202+
outline: 2px solid var(--spruce-form-color-check-focus-ring);
1203+
outline-offset: 2px;
11971204
}
11981205
.form-switch__control:checked {
11991206
background-image: url('data:image/svg+xml,%3csvg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"%3e%3ccircle cx="12" cy="12" r="8.5" style="fill:hsl%280deg, 0%, 100%%29;"/%3e%3c/svg%3e');
@@ -1375,14 +1382,16 @@ legend {
13751382
-webkit-margin-before: calc(1rem / 2 - 0.25rem / 2);
13761383
margin-block-start: calc(1rem / 2 - 0.25rem / 2);
13771384
}
1378-
.form-range:focus {
1385+
.form-range:focus-visible {
13791386
outline: none;
13801387
}
1381-
.form-range:focus::-webkit-slider-thumb {
1382-
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-range-thumb-shadow);
1388+
.form-range:focus-visible::-webkit-slider-thumb {
1389+
outline: 2px solid var(--spruce-form-color-range-thumb-focus-ring);
1390+
outline-offset: 2px;
13831391
}
1384-
.form-range:focus::-moz-range-thumb {
1385-
box-shadow: 0 0 0 0.25rem var(--spruce-form-color-range-thumb-shadow);
1392+
.form-range:focus-visible::-moz-range-thumb {
1393+
outline: 2px solid var(--spruce-form-color-range-thumb-focus-ring);
1394+
outline-offset: 2px;
13861395
}
13871396
.form-range::-webkit-slider-runnable-track {
13881397
background-color: var(--spruce-form-color-range-track-background);
@@ -1398,7 +1407,7 @@ legend {
13981407
-webkit-appearance: none;
13991408
appearance: none;
14001409
background-color: var(--spruce-form-color-range-thumb-background);
1401-
border-radius: 0.25rem;
1410+
border-radius: 0.5rem;
14021411
height: 1rem;
14031412
-webkit-margin-before: calc(0.25rem / 2 - 1rem / 2);
14041413
margin-block-start: calc(0.25rem / 2 - 1rem / 2);
@@ -1407,7 +1416,7 @@ legend {
14071416
.form-range::-moz-range-thumb {
14081417
background-color: var(--spruce-form-color-range-thumb-background);
14091418
border: 0; /*Removes extra border that FF applies*/
1410-
border-radius: 0.25rem;
1419+
border-radius: 0.5rem;
14111420
height: 1rem;
14121421
width: 1rem;
14131422
}

0 commit comments

Comments
 (0)