flexdesk 0.17.9 → 0.17.11
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.
- package/CHANGELOG.md +42 -0
- package/css/base.css +83 -83
- package/css/flexdesk.css +123 -123
- package/css/overrides.css +19 -19
- package/css/tokens.css +16 -2
- package/dist/flexdesk.css +123 -123
- package/dist/tokens.css +16 -2
- package/docs/concepts/styling.md +134 -0
- package/package.json +1 -1
package/css/overrides.css
CHANGED
|
@@ -130,8 +130,8 @@
|
|
|
130
130
|
color: var(--text-bright);
|
|
131
131
|
}
|
|
132
132
|
.twm-btn--primary:hover:not(:disabled) {
|
|
133
|
-
background:
|
|
134
|
-
border-color:
|
|
133
|
+
background: var(--accent-bright-hover);
|
|
134
|
+
border-color: var(--accent-bright-hover);
|
|
135
135
|
}
|
|
136
136
|
/* Context menu separator (matches Ecosim's .twm-context-menu look). */
|
|
137
137
|
.twm-context-menu__separator {
|
|
@@ -481,8 +481,8 @@
|
|
|
481
481
|
font-weight: 600;
|
|
482
482
|
}
|
|
483
483
|
.twm-managed-window--modal .twm-modal__actions .twm-btn--primary:hover:not(:disabled) {
|
|
484
|
-
background:
|
|
485
|
-
border-color:
|
|
484
|
+
background: var(--accent-bright-hover);
|
|
485
|
+
border-color: var(--accent-bright-hover);
|
|
486
486
|
}
|
|
487
487
|
.twm-managed-window--modal .twm-modal__actions .twm-btn--danger {
|
|
488
488
|
background: #8b2a2a;
|
|
@@ -748,7 +748,7 @@
|
|
|
748
748
|
font-size: 10px;
|
|
749
749
|
}
|
|
750
750
|
.twm-landing__pane--focused .twm-landing__pane-head {
|
|
751
|
-
background:
|
|
751
|
+
background: color-mix(in srgb, var(--accent-hover) 10%, transparent);
|
|
752
752
|
}
|
|
753
753
|
.twm-landing__pane--focused .twm-landing__pane-title {
|
|
754
754
|
color: var(--ea-accent);
|
|
@@ -781,7 +781,7 @@
|
|
|
781
781
|
}
|
|
782
782
|
.twm-entity-header__field select:focus {
|
|
783
783
|
outline: none;
|
|
784
|
-
border-color: var(--ea-accent
|
|
784
|
+
border-color: var(--ea-accent);
|
|
785
785
|
}
|
|
786
786
|
.twm-entity-header__field select option { background: var(--ea-input-bg, #1e1e1e); color: var(--ea-text, #ddd); }
|
|
787
787
|
.twm-landing__table table {
|
|
@@ -800,7 +800,7 @@
|
|
|
800
800
|
so the same arrow-key affordance reads identically across modes. */
|
|
801
801
|
.twm-row-cursor {
|
|
802
802
|
box-shadow: inset 2px 0 0 var(--ea-accent);
|
|
803
|
-
background:
|
|
803
|
+
background: color-mix(in srgb, var(--accent-hover) 12%, transparent) !important;
|
|
804
804
|
}
|
|
805
805
|
/* Quick-action strip — horizontal bar below the tables. Same chrome
|
|
806
806
|
tone as `.twm-entity-header` so the page reads as a single stack:
|
|
@@ -840,7 +840,7 @@
|
|
|
840
840
|
}
|
|
841
841
|
.twm-action-btn:hover {
|
|
842
842
|
border-color: var(--ea-accent);
|
|
843
|
-
background:
|
|
843
|
+
background: color-mix(in srgb, var(--accent-hover) 8%, transparent);
|
|
844
844
|
}
|
|
845
845
|
.twm-action-btn:disabled,
|
|
846
846
|
.twm-action-btn[aria-disabled="true"] {
|
|
@@ -1004,7 +1004,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
1004
1004
|
}
|
|
1005
1005
|
.twm-leaf--focused {
|
|
1006
1006
|
border-color: var(--accent-bright);
|
|
1007
|
-
box-shadow: 0 0 0 1px
|
|
1007
|
+
box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-bright) 25%, transparent) inset;
|
|
1008
1008
|
}
|
|
1009
1009
|
.twm-leaf__chrome {
|
|
1010
1010
|
display: flex;
|
|
@@ -1106,15 +1106,15 @@ body.twm-dragging * { user-select: none; }
|
|
|
1106
1106
|
* rather than a border, because a border changes the box and every tile in
|
|
1107
1107
|
* the row would reflow by a pixel as the pointer crossed between them. */
|
|
1108
1108
|
.twm-leaf--drop-target {
|
|
1109
|
-
outline: 2px solid var(--accent-bright
|
|
1109
|
+
outline: 2px solid var(--accent-bright);
|
|
1110
1110
|
outline-offset: -2px;
|
|
1111
1111
|
}
|
|
1112
1112
|
|
|
1113
1113
|
/* A STRIP ARMED TO RECEIVE — the drop that adds the tab at the end of this
|
|
1114
1114
|
* tile's list rather than into a zone of its body. */
|
|
1115
1115
|
.twm-leaf__tabbar--drop-target {
|
|
1116
|
-
background: color-mix(in srgb, var(--accent-bright
|
|
1117
|
-
box-shadow: inset 0 0 0 1px var(--accent-bright
|
|
1116
|
+
background: color-mix(in srgb, var(--accent-bright) 18%, transparent);
|
|
1117
|
+
box-shadow: inset 0 0 0 1px var(--accent-bright);
|
|
1118
1118
|
}
|
|
1119
1119
|
|
|
1120
1120
|
/* THE TAB BEING CARRIED. `DragReorder` has put `.dragging` on the TOP
|
|
@@ -1195,7 +1195,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
1195
1195
|
position: absolute;
|
|
1196
1196
|
inset: 0;
|
|
1197
1197
|
pointer-events: none;
|
|
1198
|
-
border-top: 1px solid var(--accent-bright
|
|
1198
|
+
border-top: 1px solid var(--accent-bright);
|
|
1199
1199
|
clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
|
|
1200
1200
|
}
|
|
1201
1201
|
.twm-leaf__tab-label {
|
|
@@ -1342,7 +1342,7 @@ body.twm-dragging * { user-select: none; }
|
|
|
1342
1342
|
.twm-tile-tabmenu__item--cursor {
|
|
1343
1343
|
/* Keyboard cursor reads slightly heavier than hover so a
|
|
1344
1344
|
* mouse-cursor-on-a-different-row state is still legible. */
|
|
1345
|
-
outline: 1px solid var(--accent-bright
|
|
1345
|
+
outline: 1px solid var(--accent-bright);
|
|
1346
1346
|
outline-offset: -1px;
|
|
1347
1347
|
}
|
|
1348
1348
|
.twm-tile-tabmenu__item-hint {
|
|
@@ -1421,8 +1421,8 @@ body.twm-dragging * { user-select: none; }
|
|
|
1421
1421
|
align-items: center;
|
|
1422
1422
|
gap: var(--space-xs);
|
|
1423
1423
|
padding: 2px 4px 2px 8px;
|
|
1424
|
-
background: var(--state-selected
|
|
1425
|
-
border: 1px solid var(--accent-bright
|
|
1424
|
+
background: var(--state-selected);
|
|
1425
|
+
border: 1px solid var(--accent-bright);
|
|
1426
1426
|
border-radius: 2px;
|
|
1427
1427
|
color: var(--text-bright, #fff);
|
|
1428
1428
|
font-size: var(--font-size-xs);
|
|
@@ -2078,7 +2078,7 @@ tr:hover .twm-row-action { opacity: 1; }
|
|
|
2078
2078
|
}
|
|
2079
2079
|
.twm-data-table-component--compact .twm-pagination-controls .twm-pagination-btn:hover:not(:disabled) {
|
|
2080
2080
|
color: var(--ea-text, #ddd) !important;
|
|
2081
|
-
border-color: var(--ea-accent
|
|
2081
|
+
border-color: var(--ea-accent) !important;
|
|
2082
2082
|
}
|
|
2083
2083
|
/* Text labels inside the pager — the "Rows X–Y of Z" and "Page X of
|
|
2084
2084
|
* Y" spans don't have classes (just inline style), so target every
|
|
@@ -2107,7 +2107,7 @@ tr:hover .twm-row-action { opacity: 1; }
|
|
|
2107
2107
|
width: 28px;
|
|
2108
2108
|
height: 28px;
|
|
2109
2109
|
border: 2px solid rgba(255, 255, 255, 0.18);
|
|
2110
|
-
border-top-color: var(--ea-accent
|
|
2110
|
+
border-top-color: var(--ea-accent);
|
|
2111
2111
|
border-radius: 50%;
|
|
2112
2112
|
animation: data-table__spin 0.7s linear infinite;
|
|
2113
2113
|
}
|
|
@@ -2284,7 +2284,7 @@ tr:hover .twm-row-action { opacity: 1; }
|
|
|
2284
2284
|
width: 18px;
|
|
2285
2285
|
height: 18px;
|
|
2286
2286
|
border: 2px solid var(--ea-border, #333);
|
|
2287
|
-
border-top-color: var(--accent
|
|
2287
|
+
border-top-color: var(--accent);
|
|
2288
2288
|
border-radius: 50%;
|
|
2289
2289
|
animation: twm-tile-loading-spin 0.7s linear infinite;
|
|
2290
2290
|
}
|
package/css/tokens.css
CHANGED
|
@@ -90,6 +90,18 @@
|
|
|
90
90
|
--accent-hover: #1177bb;
|
|
91
91
|
--accent-bright: #007acc; /* --layout-accent value */
|
|
92
92
|
|
|
93
|
+
/* Every other accent colour is DERIVED from the three above, so a
|
|
94
|
+
consumer that sets them (on :root) rethemes the whole accent (BUG-0044).
|
|
95
|
+
The light accents mix --accent-bright toward white: a slider thumb, a
|
|
96
|
+
sortable list's drop line and add button, a focused filter input. */
|
|
97
|
+
--accent-light: color-mix(in srgb, var(--accent-bright) 70%, white); /* ≈ #4da2db, was #569cd6 */
|
|
98
|
+
--accent-lighter: color-mix(in srgb, var(--accent-bright) 55%, white); /* ≈ #73b6e3, was #6eb3e9 */
|
|
99
|
+
/* BUG-0045: the other accent shades. A primary button's hover, the window
|
|
100
|
+
bar's hovered item; a pressed accent control; the lightest accent text. */
|
|
101
|
+
--accent-bright-hover: color-mix(in srgb, var(--accent-bright) 90%, white); /* ≈ #1987d1, was #1486cf / #1683c4 */
|
|
102
|
+
--accent-pressed: color-mix(in srgb, var(--accent-hover) 90%, black); /* ≈ #0f6ba8, was #1a6aa5 / #0f6fa8 */
|
|
103
|
+
--accent-lightest: color-mix(in srgb, var(--accent-bright) 36%, white); /* ≈ #a3cfed, was #9ecfff / #9fd0f0 */
|
|
104
|
+
|
|
93
105
|
/* ── Semantic colors ───────────────────────────────────────── */
|
|
94
106
|
--color-success: #3fb950;
|
|
95
107
|
--color-warning: #ff9800;
|
|
@@ -100,7 +112,9 @@
|
|
|
100
112
|
/* ── Surface state overlays ────────────────────────────────── */
|
|
101
113
|
--state-hover: rgba(255, 255, 255, 0.05);
|
|
102
114
|
--state-active: rgba(255, 255, 255, 0.08);
|
|
103
|
-
--state-selected: rgba(0, 122, 204, 0.15)
|
|
115
|
+
--state-selected: color-mix(in srgb, var(--accent-bright) 15%, transparent); /* rgba(0, 122, 204, 0.15) */
|
|
116
|
+
/* A DataTable row or cell that has just arrived flashes from this to transparent. */
|
|
117
|
+
--twm-dt-new-bg: color-mix(in srgb, var(--accent-bright) 22%, transparent); /* rgba(0, 122, 204, 0.22) */
|
|
104
118
|
|
|
105
119
|
/* ── Overlay scrollbars (installOverlayScrollbar) ─────────── */
|
|
106
120
|
--scrollbar-size: 6px;
|
|
@@ -114,7 +128,7 @@
|
|
|
114
128
|
--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
115
129
|
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
|
|
116
130
|
--shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5);
|
|
117
|
-
--shadow-glow: 0 0 2px rgba(0, 122, 204, 0.3)
|
|
131
|
+
--shadow-glow: 0 0 2px color-mix(in srgb, var(--accent-bright) 30%, transparent); /* rgba(0, 122, 204, 0.3) */
|
|
118
132
|
|
|
119
133
|
/* ── Z-index layers ───────────────────────────────────────── */
|
|
120
134
|
--z-base: 0;
|