chore(css): Normalize hex colors to 6-digit format across stylesheets

Obsidian's Community automated review flagged ~50 short-hex sites as
"Use the full 6-digit hex format for consistency". The community-scan
preference is the opposite of the prior local config (which preferred
short hex where possible). Aligning with the community standard:

- .stylelintrc.json: color-hex-length flipped from "short" to "long"
- 9 component stylesheets normalized via npm run lint:css:fix
- 8 sites in leaflet-distortable.css (file-level stylelint-disable
  scope) converted manually with sed

No runtime behavior change. Drops a ~50-warning category from the
Community scan surface.
This commit is contained in:
John Banister 2026-05-13 11:46:52 -07:00
parent 0c58697cd3
commit cfa9457429
12 changed files with 56 additions and 57 deletions

View file

@ -77,7 +77,7 @@
"media-feature-name-no-vendor-prefix": null,
"at-rule-no-vendor-prefix": null,
"length-zero-no-unit": true,
"color-hex-length": "short",
"color-hex-length": "long",
"color-hex-case": "lower",
"string-quotes": "double",
"unit-case": "lower",

View file

@ -14,6 +14,7 @@ when 1.0 ships, GEDCOM round-trip API, BRAT vs. Community Plugins), see
### Changed
- **Internal: stylelint `color-hex-length` flipped from `short` to `long`; all hex colors normalized to 6-digit form across the component stylesheets**: Obsidian's Community automated review against v0.22.33 flagged ~50 short-hex sites as `Use the full 6-digit hex format for consistency`. The community-scan preference is opposite to our prior local config (which preferred the shorter 3-digit form where possible). Aligning with the community preference: 9 component stylesheets normalized via `npm run lint:css:fix`; 8 additional sites in `styles/leaflet-distortable.css` (sheltered by its file-level `stylelint-disable`) converted manually. No runtime behavior change. Drops a ~50-warning category from the scan surface.
- **Internal: `build-css.js` now strips all `stylelint-*` directives from the bundled `styles.css`**: the directives (`/* stylelint-disable */`, `/* stylelint-enable */`, `/* stylelint-disable-next-line */`, `/* stylelint-disable-line */`) are source-level hints for the per-file lint pass and serve no purpose in the concatenated shipped bundle. Obsidian's Community automated review against v0.22.33 flagged `styles.css:90` as `no rules have been disabled` even though that line is a plain comment in our bundled output and our local stylelint passes cleanly with all `--report-*-disables` flags — most likely a scanner-side stylelint version or config difference we can't reproduce. Stripping the directives at bundle time eliminates the entire category of "needless disable" / "no rules disabled" / "rule already disabled" false-positive risk going forward, regardless of what scanner runs against the file. Source files keep their directives untouched; per-file `npm run lint:css` is unchanged. The earlier defensive auto-inject of `stylelint-enable` between concatenated components (v0.22.32 + v0.22.33) is also retired — the strip pass makes it unnecessary.
## [0.22.33] - 2026-05-12

View file

@ -171,7 +171,7 @@
.crc-cleanup-tile--complete .crc-cleanup-tile-number {
background: rgb(74 222 128);
color: #000;
color: #000000;
}
/* Tile title */

View file

@ -572,7 +572,7 @@
top: 4px;
right: 4px;
background: rgb(0 0 0 / 60%);
color: #fff;
color: #ffffff;
padding: 4px;
border-radius: var(--cr-radius-xs);
opacity: 0%;

View file

@ -234,7 +234,7 @@
--nonbinary-color: var(--cr-fcv-nonbinary-color, rgb(200, 175, 80));
--genderless-color: var(--cr-fcv-unknown-color, rgb(140, 140, 140));
--background-color: var(--cr-fcv-background-dark, rgb(33, 33, 33));
--text-color: var(--cr-fcv-text-dark, #fff);
--text-color: var(--cr-fcv-text-dark, #ffffff);
position: relative;
display: flex;
@ -299,12 +299,12 @@
.cr-fcv-chart-container.f3 .card_add .card-body-rect {
fill: #3b5560;
stroke-width: 4px;
stroke: #fff;
stroke: #ffffff;
cursor: pointer;
}
.cr-fcv-chart-container.f3 g.card_add text {
fill: #fff;
fill: #ffffff;
}
/* Main card outline */
@ -330,7 +330,7 @@
/* Card add relative icons */
.cr-fcv-chart-container.f3 .card_add_relative {
cursor: pointer;
color: #fff;
color: #ffffff;
transition: 0.3s;
}
@ -344,7 +344,7 @@
/* Edit pencil icon */
.cr-fcv-chart-container.f3 .card_edit.pencil_icon {
color: #fff;
color: #ffffff;
transition: 0.3s;
}
@ -369,7 +369,7 @@
}
.cr-fcv-chart-container.f3 .cr-open-note-btn:hover path {
stroke: #fff;
stroke: #ffffff;
}
/* SVG Card avatar images */
@ -715,11 +715,11 @@
.theme-light .cr-fcv-chart-container.f3 {
--background-color: var(--cr-fcv-background-light, rgb(250, 250, 250));
--text-color: var(--cr-fcv-text-light, #333);
--text-color: var(--cr-fcv-text-light, #333333);
}
.theme-light .cr-fcv-chart-container.f3 .link {
stroke: #666;
stroke: #666666;
}
/* ============================================================
@ -1228,7 +1228,7 @@
.cr-fcv-chart-container.card-style-circle .card {
cursor: pointer;
pointer-events: auto;
color: #fff;
color: #ffffff;
position: relative;
/* Center the card on the node position */
transform: translate(-50%, -50%);
@ -1270,7 +1270,7 @@
max-width: 200px;
text-align: center;
background-color: rgba(0, 0, 0, 0.6);
color: #fff;
color: #ffffff;
border-radius: 3px;
padding: 4px 8px;
font-size: 12px;

View file

@ -661,7 +661,7 @@
.crc-btn--success {
background: var(--color-green);
color: #000;
color: #000000;
border-color: var(--color-green);
}

View file

@ -82,7 +82,7 @@
.crc-wizard-step--completed {
background: rgb(74 222 128);
border-color: rgb(74 222 128);
color: #000;
color: #000000;
}
.crc-wizard-step--completed svg {
@ -1833,7 +1833,7 @@
.crc-btn--success {
background: rgb(74 222 128);
color: #000;
color: #000000;
}
.crc-btn--success:hover {

View file

@ -27,7 +27,7 @@
border-right: 0;
text-align: center;
text-decoration: none;
background-color: #fff;
background-color: #ffffff;
}
.leaflet-toolbar-0 > li > .leaflet-toolbar-icon:hover {
background-color: #f4f4f4;
@ -46,7 +46,7 @@
width: 16px;
height: 16px;
margin: -8px auto 0;
background-color: #fff;
background-color: #ffffff;
border: 2px solid rgba(0, 0, 0, 0.2);
background-clip: content-box;
transform: rotate(45deg);
@ -58,7 +58,7 @@
border-bottom-right-radius: 4px;
}
.leaflet-control-toolbar > li > .leaflet-toolbar-icon {
border-bottom: 1px solid #ccc;
border-bottom: 1px solid #cccccc;
}
.leaflet-control-toolbar > li:first-child > .leaflet-toolbar-icon {
border-top-left-radius: 4px;
@ -84,8 +84,8 @@
.leaflet-control-toolbar .leaflet-toolbar-1 > li > .leaflet-toolbar-icon {
display: block;
background-color: #919187;
border-left: 1px solid #aaa;
color: #fff;
border-left: 1px solid #aaaaaa;
color: #ffffff;
font:
11px/19px "Helvetica Neue",
Arial,
@ -108,7 +108,7 @@
float: left;
}
.leaflet-popup-toolbar > li > .leaflet-toolbar-icon {
border-right: 1px solid #ccc;
border-right: 1px solid #cccccc;
}
.leaflet-popup-toolbar > li:first-child > .leaflet-toolbar-icon {
border-top-left-radius: 4px;
@ -243,11 +243,11 @@ input.ldi {
box-shadow:
0 1px 1px rgba(0, 0, 0, 0.2),
0 2px 0 0 rgba(255, 255, 255, 0.7) inset;
text-shadow: 0 0.5px 0 #fff;
text-shadow: 0 0.5px 0 #ffffff;
}
#toggle-keymapper {
background-color: #fff;
background-color: #ffffff;
padding: 0px;
width: 30px;
height: 30px;

View file

@ -258,7 +258,6 @@ svg.leaflet-zoom-animated {
}
.leaflet-grab {
cursor: -moz-grab;
cursor: grab;
}
@ -275,7 +274,6 @@ svg.leaflet-zoom-animated {
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing;
}
@ -303,8 +301,8 @@ svg.leaflet-image-layer.leaflet-interactive path {
}
.leaflet-bar a {
background-color: #fff;
border-bottom: 1px solid #ccc;
background-color: #ffffff;
border-bottom: 1px solid #cccccc;
width: 26px;
height: 26px;
line-height: 26px;
@ -340,7 +338,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
.leaflet-bar a.leaflet-disabled {
cursor: default;
background-color: #f4f4f4;
color: #bbb;
color: #bbbbbb;
}
.leaflet-touch .leaflet-bar a {
@ -377,7 +375,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
/* Layers control base styles */
.leaflet-control-layers {
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
background: #fff;
background: #ffffff;
border-radius: 5px;
}
@ -393,8 +391,8 @@ svg.leaflet-image-layer.leaflet-interactive path {
.leaflet-control-layers-expanded {
padding: 6px 10px 6px 6px;
color: #333;
background: #fff;
color: #333333;
background: #ffffff;
}
.leaflet-control-layers-scrollbar {
@ -416,7 +414,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
.leaflet-control-layers-separator {
height: 0;
border-top: 1px solid #ddd;
border-top: 1px solid #dddddd;
margin: 5px -10px 5px -6px;
}
@ -429,7 +427,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
.leaflet-control-attribution,
.leaflet-control-scale-line {
padding: 0 5px;
color: #333;
color: #333333;
line-height: 1.4;
}
@ -452,24 +450,24 @@ svg.leaflet-image-layer.leaflet-interactive path {
}
.leaflet-control-scale-line {
border: 2px solid #777;
border: 2px solid #777777;
border-top: none;
line-height: 1.1;
padding: 2px 5px 1px;
white-space: nowrap;
box-sizing: border-box;
background: rgba(255, 255, 255, 0.8);
text-shadow: 1px 1px #fff;
text-shadow: 1px 1px #ffffff;
}
.leaflet-control-scale-line:not(:first-child) {
border-top: 2px solid #777;
border-top: 2px solid #777777;
border-bottom: none;
margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
border-bottom: 2px solid #777;
border-bottom: 2px solid #777777;
}
/* Touch adjustments */
@ -532,7 +530,7 @@ svg.leaflet-image-layer.leaflet-interactive path {
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
background: white;
color: #333;
color: #333333;
box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
}
@ -564,18 +562,18 @@ svg.leaflet-image-layer.leaflet-interactive path {
/* Div icon */
.leaflet-div-icon {
background: #fff;
border: 1px solid #666;
background: #ffffff;
border: 1px solid #666666;
}
/* Tooltip styles */
.leaflet-tooltip {
position: absolute;
padding: 6px;
background-color: #fff;
border: 1px solid #fff;
background-color: #ffffff;
border: 1px solid #ffffff;
border-radius: 3px;
color: #222;
color: #222222;
white-space: nowrap;
-webkit-user-select: none;
-moz-user-select: none;
@ -617,14 +615,14 @@ svg.leaflet-image-layer.leaflet-interactive path {
.leaflet-tooltip-top::before {
bottom: 0;
margin-bottom: -12px;
border-top-color: #fff;
border-top-color: #ffffff;
}
.leaflet-tooltip-bottom::before {
top: 0;
margin-top: -12px;
margin-left: -6px;
border-bottom-color: #fff;
border-bottom-color: #ffffff;
}
.leaflet-tooltip-left {
@ -644,13 +642,13 @@ svg.leaflet-image-layer.leaflet-interactive path {
.leaflet-tooltip-left::before {
right: 0;
margin-right: -12px;
border-left-color: #fff;
border-left-color: #ffffff;
}
.leaflet-tooltip-right::before {
left: 0;
margin-left: -12px;
border-right-color: #fff;
border-right-color: #ffffff;
}
/* Print styles */

View file

@ -870,22 +870,22 @@
.crc-media-gallery-item-badge--event {
background: rgb(96 165 250);
color: #000;
color: #000000;
}
.crc-media-gallery-item-badge--place {
background: rgb(74 222 128);
color: #000;
color: #000000;
}
.crc-media-gallery-item-badge--organization {
background: rgb(251 146 60);
color: #000;
color: #000000;
}
.crc-media-gallery-item-badge--source {
background: rgb(244 114 182);
color: #000;
color: #000000;
}
/* Overlay */
@ -901,7 +901,7 @@
.crc-media-gallery-item-name {
font-size: 11px;
font-weight: 500;
color: #fff;
color: #ffffff;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;

View file

@ -1319,7 +1319,7 @@
.cr-lookup-source-badge--wikidata {
background: rgb(153 0 0 / 15%);
color: #900;
color: #990000;
}
.cr-lookup-source-badge--geonames {
@ -1335,7 +1335,7 @@
/* Dark theme adjustments for source badges */
.theme-dark .cr-lookup-source-badge--wikidata {
background: rgb(255 100 100 / 20%);
color: #f99;
color: #ff9999;
}
.theme-dark .cr-lookup-source-badge--geonames {

View file

@ -40,8 +40,8 @@
--cr-fcv-unknown-color: rgb(211, 211, 211);
--cr-fcv-background-light: rgb(250, 250, 250);
--cr-fcv-background-dark: rgb(33, 33, 33);
--cr-fcv-text-light: #333;
--cr-fcv-text-dark: #fff;
--cr-fcv-text-light: #333333;
--cr-fcv-text-dark: #ffffff;
/* Evidence Visualization - customizable via Style Settings plugin */
--cr-source-primary: #22c55e;