@kumbatio/energy-system 0.1.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.
- package/LICENSE +21 -0
- package/README.md +247 -0
- package/dist/compat.d.ts +49 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +109 -0
- package/dist/compat.js.map +1 -0
- package/dist/dom.d.ts +19 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +72 -0
- package/dist/dom.js.map +1 -0
- package/dist/engine.d.ts +26 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +218 -0
- package/dist/engine.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/levels.d.ts +16 -0
- package/dist/levels.d.ts.map +1 -0
- package/dist/levels.js +114 -0
- package/dist/levels.js.map +1 -0
- package/dist/metrics.d.ts +6 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +47 -0
- package/dist/metrics.js.map +1 -0
- package/dist/persistence.d.ts +12 -0
- package/dist/persistence.d.ts.map +1 -0
- package/dist/persistence.js +93 -0
- package/dist/persistence.js.map +1 -0
- package/dist/react.d.ts +45 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +130 -0
- package/dist/react.js.map +1 -0
- package/dist/strategies.d.ts +36 -0
- package/dist/strategies.d.ts.map +1 -0
- package/dist/strategies.js +175 -0
- package/dist/strategies.js.map +1 -0
- package/dist/types.d.ts +88 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +73 -0
- package/src/energy.css +134 -0
package/src/energy.css
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* energy-system - Reference CSS for the UI visibility strategy
|
|
3
|
+
*
|
|
4
|
+
* This is ONE way to consume energy state. Apps can also use
|
|
5
|
+
* the JS strategy API directly and apply styles however they want.
|
|
6
|
+
*
|
|
7
|
+
* Apply these classes to your components:
|
|
8
|
+
* .energy-chrome - any chrome element (titlebar, toolbar, status bar)
|
|
9
|
+
* .energy-sidebar - sidebar container
|
|
10
|
+
* .energy-tab-bar - tab bar container
|
|
11
|
+
* .energy-status-bar - status bar
|
|
12
|
+
* .energy-toolbar - editor/app toolbar
|
|
13
|
+
* .energy-content - main content area
|
|
14
|
+
*
|
|
15
|
+
* Set data-energy-level on your root element (body or container).
|
|
16
|
+
*
|
|
17
|
+
* The per-level custom property values below mirror uiVisibilityStrategy.
|
|
18
|
+
* applyEnergyLevel() sets the same properties as inline styles, which take
|
|
19
|
+
* precedence but resolve to identical values, so the JS and CSS-only paths
|
|
20
|
+
* always agree.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/* ── Custom properties per level (mirror of uiVisibilityStrategy) ── */
|
|
24
|
+
|
|
25
|
+
[data-energy-level] {
|
|
26
|
+
--energy-chrome-opacity: 1;
|
|
27
|
+
--energy-chrome-opacity-hover: 1;
|
|
28
|
+
--energy-content-max-width: none;
|
|
29
|
+
--energy-content-font-scale: 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
[data-energy-level='75'] {
|
|
33
|
+
--energy-chrome-opacity: 0.7;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
[data-energy-level='50'] {
|
|
37
|
+
--energy-chrome-opacity: 0.4;
|
|
38
|
+
--energy-content-max-width: 90ch;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
[data-energy-level='25'] {
|
|
42
|
+
--energy-chrome-opacity: 0.1;
|
|
43
|
+
--energy-content-max-width: 80ch;
|
|
44
|
+
--energy-content-font-scale: 1.05;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
[data-energy-level='0'] {
|
|
48
|
+
--energy-chrome-opacity: 0.05;
|
|
49
|
+
--energy-chrome-opacity-hover: 0.8;
|
|
50
|
+
--energy-content-max-width: 75ch;
|
|
51
|
+
--energy-content-font-scale: 1.1;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* ── Level 75 - Active ── */
|
|
55
|
+
|
|
56
|
+
[data-energy-level='75'] .energy-chrome {
|
|
57
|
+
opacity: var(--energy-chrome-opacity, 0.7);
|
|
58
|
+
transition: opacity 0.3s ease;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
[data-energy-level='75'] .energy-chrome:hover {
|
|
62
|
+
opacity: var(--energy-chrome-opacity-hover, 1);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* ── Level 50 - Steady ── */
|
|
66
|
+
|
|
67
|
+
[data-energy-level='50'] .energy-chrome {
|
|
68
|
+
opacity: var(--energy-chrome-opacity, 0.4);
|
|
69
|
+
transition: opacity 0.3s ease;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
[data-energy-level='50'] .energy-chrome:hover {
|
|
73
|
+
opacity: var(--energy-chrome-opacity-hover, 1);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
[data-energy-level='50'] .energy-content {
|
|
77
|
+
max-width: var(--energy-content-max-width, 90ch);
|
|
78
|
+
margin-inline: auto;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* ── Level 25 - Low ── */
|
|
82
|
+
|
|
83
|
+
[data-energy-level='25'] .energy-sidebar,
|
|
84
|
+
[data-energy-level='25'] .energy-tab-bar,
|
|
85
|
+
[data-energy-level='25'] .energy-status-bar {
|
|
86
|
+
display: none;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
[data-energy-level='25'] .energy-chrome {
|
|
90
|
+
opacity: var(--energy-chrome-opacity, 0.1);
|
|
91
|
+
transition: opacity 0.3s ease;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
[data-energy-level='25'] .energy-chrome:hover {
|
|
95
|
+
opacity: var(--energy-chrome-opacity-hover, 1);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
[data-energy-level='25'] .energy-content {
|
|
99
|
+
max-width: var(--energy-content-max-width, 80ch);
|
|
100
|
+
margin-inline: auto;
|
|
101
|
+
padding: 2rem;
|
|
102
|
+
font-size: calc(1em * var(--energy-content-font-scale, 1.05));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* ── Level 0 - Rest ── */
|
|
106
|
+
|
|
107
|
+
[data-energy-level='0'] .energy-sidebar,
|
|
108
|
+
[data-energy-level='0'] .energy-tab-bar,
|
|
109
|
+
[data-energy-level='0'] .energy-status-bar,
|
|
110
|
+
[data-energy-level='0'] .energy-toolbar {
|
|
111
|
+
display: none !important;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
[data-energy-level='0'] .energy-chrome {
|
|
115
|
+
opacity: var(--energy-chrome-opacity, 0.05);
|
|
116
|
+
transition: opacity 0.3s ease;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
[data-energy-level='0'] .energy-chrome:hover {
|
|
120
|
+
opacity: var(--energy-chrome-opacity-hover, 0.8);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
[data-energy-level='0'] .energy-content {
|
|
124
|
+
max-width: var(--energy-content-max-width, 75ch);
|
|
125
|
+
margin-inline: auto;
|
|
126
|
+
padding: 2rem;
|
|
127
|
+
line-height: 1.4;
|
|
128
|
+
font-size: calc(1em * var(--energy-content-font-scale, 1.1));
|
|
129
|
+
cursor: default !important;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
[data-energy-level='0'] .energy-content * {
|
|
133
|
+
cursor: default !important;
|
|
134
|
+
}
|