@dalcvil/steam-green-react 0.2.0 → 1.0.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/README.md +20 -5
- package/dist/components/Avatar/Avatar.css +136 -0
- package/dist/components/Avatar/Avatar.d.ts +22 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.js +49 -0
- package/dist/components/Avatar/Avatar.js.map +1 -0
- package/dist/components/Avatar/index.d.ts +3 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Button/Button.css +117 -0
- package/dist/components/Button/Button.d.ts +18 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.js +29 -0
- package/dist/components/Button/Button.js.map +1 -0
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.css +116 -0
- package/dist/components/Checkbox/Checkbox.css.d.ts +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +19 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +51 -0
- package/dist/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/components/Checkbox/index.d.ts +3 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/ColorPicker/ColorPicker.css +331 -0
- package/dist/components/ColorPicker/ColorPicker.css.d.ts +1 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts +29 -0
- package/dist/components/ColorPicker/ColorPicker.d.ts.map +1 -0
- package/dist/components/ColorPicker/ColorPicker.js +534 -0
- package/dist/components/ColorPicker/ColorPicker.js.map +1 -0
- package/dist/components/ColorPicker/index.d.ts +3 -0
- package/dist/components/{GreenButton → ColorPicker}/index.d.ts.map +1 -1
- package/dist/components/Console/Console.css +96 -0
- package/dist/components/Console/Console.css.d.ts +1 -0
- package/dist/components/Console/Console.d.ts +26 -0
- package/dist/components/Console/Console.d.ts.map +1 -0
- package/dist/components/Console/Console.js +59 -0
- package/dist/components/Console/Console.js.map +1 -0
- package/dist/components/Console/index.d.ts +3 -0
- package/dist/components/Console/index.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.css +137 -0
- package/dist/components/Dialog/Dialog.css.d.ts +1 -0
- package/dist/components/Dialog/Dialog.d.ts +28 -0
- package/dist/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.js +151 -0
- package/dist/components/Dialog/Dialog.js.map +1 -0
- package/dist/components/Dialog/index.d.ts +3 -0
- package/dist/components/Dialog/index.d.ts.map +1 -0
- package/dist/components/Divider/Divider.css +68 -0
- package/dist/components/Divider/Divider.css.d.ts +1 -0
- package/dist/components/Divider/Divider.d.ts +12 -0
- package/dist/components/Divider/Divider.d.ts.map +1 -0
- package/dist/components/Divider/Divider.js +23 -0
- package/dist/components/Divider/Divider.js.map +1 -0
- package/dist/components/Divider/index.d.ts +3 -0
- package/dist/components/Divider/index.d.ts.map +1 -0
- package/dist/components/FieldLabel/FieldLabel.css +98 -0
- package/dist/components/FieldLabel/FieldLabel.css.d.ts +1 -0
- package/dist/components/FieldLabel/FieldLabel.d.ts +29 -0
- package/dist/components/FieldLabel/FieldLabel.d.ts.map +1 -0
- package/dist/components/FieldLabel/FieldLabel.js +42 -0
- package/dist/components/FieldLabel/FieldLabel.js.map +1 -0
- package/dist/components/FieldLabel/index.d.ts +3 -0
- package/dist/components/{GreenPanel → FieldLabel}/index.d.ts.map +1 -1
- package/dist/components/GroupBox/GroupBox.css +101 -0
- package/dist/components/GroupBox/GroupBox.css.d.ts +1 -0
- package/dist/components/GroupBox/GroupBox.d.ts +14 -0
- package/dist/components/GroupBox/GroupBox.d.ts.map +1 -0
- package/dist/components/GroupBox/GroupBox.js +25 -0
- package/dist/components/GroupBox/GroupBox.js.map +1 -0
- package/dist/components/GroupBox/index.d.ts +3 -0
- package/dist/components/GroupBox/index.d.ts.map +1 -0
- package/dist/components/IconButton/IconButton.css +184 -0
- package/dist/components/IconButton/IconButton.css.d.ts +1 -0
- package/dist/components/IconButton/IconButton.d.ts +56 -0
- package/dist/components/IconButton/IconButton.d.ts.map +1 -0
- package/dist/components/IconButton/IconButton.js +77 -0
- package/dist/components/IconButton/IconButton.js.map +1 -0
- package/dist/components/IconButton/index.d.ts +3 -0
- package/dist/components/IconButton/index.d.ts.map +1 -0
- package/dist/components/LevelMeter/LevelMeter.css +117 -0
- package/dist/components/LevelMeter/LevelMeter.css.d.ts +1 -0
- package/dist/components/LevelMeter/LevelMeter.d.ts +20 -0
- package/dist/components/LevelMeter/LevelMeter.d.ts.map +1 -0
- package/dist/components/LevelMeter/LevelMeter.js +44 -0
- package/dist/components/LevelMeter/LevelMeter.js.map +1 -0
- package/dist/components/LevelMeter/index.d.ts +3 -0
- package/dist/components/LevelMeter/index.d.ts.map +1 -0
- package/dist/components/Link/Link.css +127 -0
- package/dist/components/Link/Link.css.d.ts +1 -0
- package/dist/components/Link/Link.d.ts +26 -0
- package/dist/components/Link/Link.d.ts.map +1 -0
- package/dist/components/Link/Link.js +60 -0
- package/dist/components/Link/Link.js.map +1 -0
- package/dist/components/Link/index.d.ts +3 -0
- package/dist/components/Link/index.d.ts.map +1 -0
- package/dist/components/List/List.css +224 -0
- package/dist/components/List/List.css.d.ts +1 -0
- package/dist/components/List/List.d.ts +49 -0
- package/dist/components/List/List.d.ts.map +1 -0
- package/dist/components/List/List.js +300 -0
- package/dist/components/List/List.js.map +1 -0
- package/dist/components/List/index.d.ts +3 -0
- package/dist/components/List/index.d.ts.map +1 -0
- package/dist/components/Menu/Menu.css +122 -0
- package/dist/components/Menu/Menu.css.d.ts +1 -0
- package/dist/components/Menu/Menu.d.ts +46 -0
- package/dist/components/Menu/Menu.d.ts.map +1 -0
- package/dist/components/Menu/Menu.js +246 -0
- package/dist/components/Menu/Menu.js.map +1 -0
- package/dist/components/Menu/index.d.ts +3 -0
- package/dist/components/Menu/index.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBar.css +94 -0
- package/dist/components/MenuBar/MenuBar.css.d.ts +1 -0
- package/dist/components/MenuBar/MenuBar.d.ts +34 -0
- package/dist/components/MenuBar/MenuBar.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBar.js +129 -0
- package/dist/components/MenuBar/MenuBar.js.map +1 -0
- package/dist/components/MenuBar/index.d.ts +3 -0
- package/dist/components/MenuBar/index.d.ts.map +1 -0
- package/dist/components/NavBar/NavBar.css +179 -0
- package/dist/components/NavBar/NavBar.css.d.ts +1 -0
- package/dist/components/NavBar/NavBar.d.ts +39 -0
- package/dist/components/NavBar/NavBar.d.ts.map +1 -0
- package/dist/components/NavBar/NavBar.js +198 -0
- package/dist/components/NavBar/NavBar.js.map +1 -0
- package/dist/components/NavBar/index.d.ts +3 -0
- package/dist/components/NavBar/index.d.ts.map +1 -0
- package/dist/components/Notification/Notification.css +176 -0
- package/dist/components/Notification/Notification.css.d.ts +1 -0
- package/dist/components/Notification/Notification.d.ts +26 -0
- package/dist/components/Notification/Notification.d.ts.map +1 -0
- package/dist/components/Notification/Notification.js +181 -0
- package/dist/components/Notification/Notification.js.map +1 -0
- package/dist/components/Notification/index.d.ts +3 -0
- package/dist/components/Notification/index.d.ts.map +1 -0
- package/dist/components/Panel/Panel.css +56 -0
- package/dist/components/Panel/Panel.css.d.ts +1 -0
- package/dist/components/Panel/Panel.d.ts +14 -0
- package/dist/components/Panel/Panel.d.ts.map +1 -0
- package/dist/components/Panel/Panel.js +42 -0
- package/dist/components/Panel/Panel.js.map +1 -0
- package/dist/components/Panel/index.d.ts +3 -0
- package/dist/components/Panel/index.d.ts.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.css +108 -0
- package/dist/components/ProgressBar/ProgressBar.css.d.ts +1 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +22 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -0
- package/dist/components/ProgressBar/ProgressBar.js +43 -0
- package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/components/ProgressBar/index.d.ts +3 -0
- package/dist/components/ProgressBar/index.d.ts.map +1 -0
- package/dist/components/Radio/Radio.css +125 -0
- package/dist/components/Radio/Radio.css.d.ts +1 -0
- package/dist/components/Radio/Radio.d.ts +40 -0
- package/dist/components/Radio/Radio.d.ts.map +1 -0
- package/dist/components/Radio/Radio.js +91 -0
- package/dist/components/Radio/Radio.js.map +1 -0
- package/dist/components/Radio/index.d.ts +3 -0
- package/dist/components/Radio/index.d.ts.map +1 -0
- package/dist/components/RichText/RichText.css +96 -0
- package/dist/components/RichText/RichText.css.d.ts +1 -0
- package/dist/components/RichText/RichText.d.ts +25 -0
- package/dist/components/RichText/RichText.d.ts.map +1 -0
- package/dist/components/RichText/RichText.js +56 -0
- package/dist/components/RichText/RichText.js.map +1 -0
- package/dist/components/RichText/index.d.ts +3 -0
- package/dist/components/RichText/index.d.ts.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.css +236 -0
- package/dist/components/ScrollArea/ScrollArea.css.d.ts +1 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts +25 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.js +124 -0
- package/dist/components/ScrollArea/ScrollArea.js.map +1 -0
- package/dist/components/ScrollArea/index.d.ts +3 -0
- package/dist/components/ScrollArea/index.d.ts.map +1 -0
- package/dist/components/Scrollbar/Scrollbar.css +260 -0
- package/dist/components/Scrollbar/Scrollbar.css.d.ts +1 -0
- package/dist/components/Scrollbar/Scrollbar.d.ts +31 -0
- package/dist/components/Scrollbar/Scrollbar.d.ts.map +1 -0
- package/dist/components/Scrollbar/Scrollbar.js +277 -0
- package/dist/components/Scrollbar/Scrollbar.js.map +1 -0
- package/dist/components/Scrollbar/index.d.ts +3 -0
- package/dist/components/Scrollbar/index.d.ts.map +1 -0
- package/dist/components/Select/Select.css +299 -0
- package/dist/components/Select/Select.css.d.ts +1 -0
- package/dist/components/Select/Select.d.ts +52 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/Select.js +281 -0
- package/dist/components/Select/Select.js.map +1 -0
- package/dist/components/Select/index.d.ts +3 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Slider/Slider.css +158 -0
- package/dist/components/Slider/Slider.css.d.ts +1 -0
- package/dist/components/Slider/Slider.d.ts +26 -0
- package/dist/components/Slider/Slider.d.ts.map +1 -0
- package/dist/components/Slider/Slider.js +67 -0
- package/dist/components/Slider/Slider.js.map +1 -0
- package/dist/components/Slider/index.d.ts +3 -0
- package/dist/components/Slider/index.d.ts.map +1 -0
- package/dist/components/SpinBox/SpinBox.css +152 -0
- package/dist/components/SpinBox/SpinBox.css.d.ts +1 -0
- package/dist/components/SpinBox/SpinBox.d.ts +28 -0
- package/dist/components/SpinBox/SpinBox.d.ts.map +1 -0
- package/dist/components/SpinBox/SpinBox.js +207 -0
- package/dist/components/SpinBox/SpinBox.js.map +1 -0
- package/dist/components/SpinBox/index.d.ts +3 -0
- package/dist/components/SpinBox/index.d.ts.map +1 -0
- package/dist/components/Spinner/Spinner.css +137 -0
- package/dist/components/Spinner/Spinner.css.d.ts +1 -0
- package/dist/components/Spinner/Spinner.d.ts +20 -0
- package/dist/components/Spinner/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner/Spinner.js +36 -0
- package/dist/components/Spinner/Spinner.js.map +1 -0
- package/dist/components/Spinner/index.d.ts +3 -0
- package/dist/components/Spinner/index.d.ts.map +1 -0
- package/dist/components/Splitter/Splitter.css +119 -0
- package/dist/components/Splitter/Splitter.css.d.ts +1 -0
- package/dist/components/Splitter/Splitter.d.ts +25 -0
- package/dist/components/Splitter/Splitter.d.ts.map +1 -0
- package/dist/components/Splitter/Splitter.js +212 -0
- package/dist/components/Splitter/Splitter.js.map +1 -0
- package/dist/components/Splitter/index.d.ts +3 -0
- package/dist/components/Splitter/index.d.ts.map +1 -0
- package/dist/components/StatusBar/StatusBar.css +97 -0
- package/dist/components/StatusBar/StatusBar.css.d.ts +1 -0
- package/dist/components/StatusBar/StatusBar.d.ts +22 -0
- package/dist/components/StatusBar/StatusBar.d.ts.map +1 -0
- package/dist/components/StatusBar/StatusBar.js +56 -0
- package/dist/components/StatusBar/StatusBar.js.map +1 -0
- package/dist/components/StatusBar/index.d.ts +3 -0
- package/dist/components/StatusBar/index.d.ts.map +1 -0
- package/dist/components/StatusLabel/StatusLabel.css +93 -0
- package/dist/components/StatusLabel/StatusLabel.css.d.ts +1 -0
- package/dist/components/StatusLabel/StatusLabel.d.ts +20 -0
- package/dist/components/StatusLabel/StatusLabel.d.ts.map +1 -0
- package/dist/components/StatusLabel/StatusLabel.js +42 -0
- package/dist/components/StatusLabel/StatusLabel.js.map +1 -0
- package/dist/components/StatusLabel/index.d.ts +3 -0
- package/dist/components/StatusLabel/index.d.ts.map +1 -0
- package/dist/components/Table/Table.css +253 -0
- package/dist/components/Table/Table.css.d.ts +1 -0
- package/dist/components/Table/Table.d.ts +67 -0
- package/dist/components/Table/Table.d.ts.map +1 -0
- package/dist/components/Table/Table.js +429 -0
- package/dist/components/Table/Table.js.map +1 -0
- package/dist/components/Table/index.d.ts +3 -0
- package/dist/components/Table/index.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.css +138 -0
- package/dist/components/Tabs/Tabs.css.d.ts +1 -0
- package/dist/components/Tabs/Tabs.d.ts +34 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.js +140 -0
- package/dist/components/Tabs/Tabs.js.map +1 -0
- package/dist/components/Tabs/index.d.ts +3 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/TextInput/TextInput.css +133 -0
- package/dist/components/TextInput/TextInput.css.d.ts +1 -0
- package/dist/components/TextInput/TextInput.d.ts +16 -0
- package/dist/components/TextInput/TextInput.d.ts.map +1 -0
- package/dist/components/TextInput/TextInput.js +38 -0
- package/dist/components/TextInput/TextInput.js.map +1 -0
- package/dist/components/TextInput/index.d.ts +3 -0
- package/dist/components/TextInput/index.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.css +121 -0
- package/dist/components/Textarea/Textarea.css.d.ts +1 -0
- package/dist/components/Textarea/Textarea.d.ts +21 -0
- package/dist/components/Textarea/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea/Textarea.js +61 -0
- package/dist/components/Textarea/Textarea.js.map +1 -0
- package/dist/components/Textarea/index.d.ts +3 -0
- package/dist/components/Textarea/index.d.ts.map +1 -0
- package/dist/components/TitleBar/TitleBar.css +76 -0
- package/dist/components/TitleBar/TitleBar.css.d.ts +1 -0
- package/dist/components/TitleBar/TitleBar.d.ts +20 -0
- package/dist/components/TitleBar/TitleBar.d.ts.map +1 -0
- package/dist/components/TitleBar/TitleBar.js +43 -0
- package/dist/components/TitleBar/TitleBar.js.map +1 -0
- package/dist/components/TitleBar/index.d.ts +3 -0
- package/dist/components/TitleBar/index.d.ts.map +1 -0
- package/dist/components/ToggleButton/ToggleButton.css +162 -0
- package/dist/components/ToggleButton/ToggleButton.css.d.ts +1 -0
- package/dist/components/ToggleButton/ToggleButton.d.ts +27 -0
- package/dist/components/ToggleButton/ToggleButton.d.ts.map +1 -0
- package/dist/components/ToggleButton/ToggleButton.js +52 -0
- package/dist/components/ToggleButton/ToggleButton.js.map +1 -0
- package/dist/components/ToggleButton/index.d.ts +3 -0
- package/dist/components/ToggleButton/index.d.ts.map +1 -0
- package/dist/components/Toolbar/Toolbar.css +202 -0
- package/dist/components/Toolbar/Toolbar.css.d.ts +1 -0
- package/dist/components/Toolbar/Toolbar.d.ts +46 -0
- package/dist/components/Toolbar/Toolbar.d.ts.map +1 -0
- package/dist/components/Toolbar/Toolbar.js +102 -0
- package/dist/components/Toolbar/Toolbar.js.map +1 -0
- package/dist/components/Toolbar/index.d.ts +3 -0
- package/dist/components/Toolbar/index.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.css +86 -0
- package/dist/components/Tooltip/Tooltip.css.d.ts +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +22 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +92 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/Tooltip/index.d.ts +3 -0
- package/dist/components/Tooltip/index.d.ts.map +1 -0
- package/dist/components/TreeView/TreeView.css +191 -0
- package/dist/components/TreeView/TreeView.css.d.ts +1 -0
- package/dist/components/TreeView/TreeView.d.ts +46 -0
- package/dist/components/TreeView/TreeView.d.ts.map +1 -0
- package/dist/components/TreeView/TreeView.js +331 -0
- package/dist/components/TreeView/TreeView.js.map +1 -0
- package/dist/components/TreeView/index.d.ts +3 -0
- package/dist/components/TreeView/index.d.ts.map +1 -0
- package/dist/components/Window/Window.css +218 -0
- package/dist/components/Window/Window.css.d.ts +1 -0
- package/dist/components/Window/Window.d.ts +30 -0
- package/dist/components/Window/Window.d.ts.map +1 -0
- package/dist/components/Window/Window.js +156 -0
- package/dist/components/Window/Window.js.map +1 -0
- package/dist/components/Window/index.d.ts +3 -0
- package/dist/components/Window/index.d.ts.map +1 -0
- package/dist/index.d.ts +91 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -3
- package/dist/styles/scrollbars.css +123 -0
- package/dist/styles/scrollbars.css.d.ts +1 -0
- package/dist/styles/theme.css +86 -41
- package/dist/styles/tokens.css +202 -0
- package/dist/styles/tokens.css.d.ts +1 -0
- package/dist/test/a11y.d.ts +3 -0
- package/dist/test/a11y.d.ts.map +1 -0
- package/dist/test/index.d.ts +2 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/package.json +13 -2
- package/dist/components/GreenButton/GreenButton.css +0 -47
- package/dist/components/GreenButton/GreenButton.d.ts +0 -8
- package/dist/components/GreenButton/GreenButton.d.ts.map +0 -1
- package/dist/components/GreenButton/GreenButton.js +0 -20
- package/dist/components/GreenButton/GreenButton.js.map +0 -1
- package/dist/components/GreenButton/index.d.ts +0 -3
- package/dist/components/GreenPanel/GreenPanel.css +0 -45
- package/dist/components/GreenPanel/GreenPanel.d.ts +0 -12
- package/dist/components/GreenPanel/GreenPanel.d.ts.map +0 -1
- package/dist/components/GreenPanel/GreenPanel.js +0 -24
- package/dist/components/GreenPanel/GreenPanel.js.map +0 -1
- package/dist/components/GreenPanel/index.d.ts +0 -3
- /package/dist/components/{GreenButton/GreenButton.css.d.ts → Avatar/Avatar.css.d.ts} +0 -0
- /package/dist/components/{GreenPanel/GreenPanel.css.d.ts → Button/Button.css.d.ts} +0 -0
package/dist/styles/theme.css
CHANGED
|
@@ -1,25 +1,34 @@
|
|
|
1
1
|
/*
|
|
2
|
-
*
|
|
2
|
+
* Green Steam (VGUI) global theme.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* helpers that every component inherits. Anything
|
|
4
|
+
* Opt-in, and only ever document-level: tokens plus the element defaults and
|
|
5
|
+
* layout helpers that every component inherits. Anything belonging to a single
|
|
6
6
|
* component is colocated with that component instead (see
|
|
7
|
-
* `components/
|
|
7
|
+
* `components/Button/Button.css`).
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Components never depend on this file — each one imports its own stylesheet
|
|
10
|
+
* and reads `var(--vgui-*)` tokens, so a component dropped into an unthemed
|
|
11
|
+
* page still renders. Import this once (or `./tokens.css` alone for just the
|
|
12
|
+
* tokens) to theme the page around it.
|
|
13
|
+
*
|
|
14
|
+
* Derived from VGUI.css <https://github.com/AlpyneDreams/vgui.css> (MIT) and
|
|
15
|
+
* Valve's `steamscheme.res`. See `docs/foundations.md`.
|
|
10
16
|
*/
|
|
11
17
|
|
|
18
|
+
@import './tokens.css';
|
|
19
|
+
|
|
12
20
|
body {
|
|
13
|
-
background-color:
|
|
14
|
-
font-family:
|
|
15
|
-
color:
|
|
16
|
-
font-size:
|
|
17
|
-
|
|
18
|
-
margin: 20px
|
|
21
|
+
background-color: var(--vgui-surface-dark);
|
|
22
|
+
font-family: var(--vgui-font);
|
|
23
|
+
color: var(--vgui-text);
|
|
24
|
+
font-size: var(--vgui-font-size);
|
|
25
|
+
line-height: var(--vgui-line-height);
|
|
26
|
+
margin: 20px;
|
|
19
27
|
}
|
|
20
28
|
|
|
21
29
|
::selection {
|
|
22
|
-
background-color:
|
|
30
|
+
background-color: var(--vgui-selection-bg);
|
|
31
|
+
color: var(--vgui-selection-text);
|
|
23
32
|
}
|
|
24
33
|
|
|
25
34
|
h1,
|
|
@@ -29,11 +38,13 @@ h4,
|
|
|
29
38
|
h5,
|
|
30
39
|
h6 {
|
|
31
40
|
margin: 3px 12px 12px;
|
|
41
|
+
font-weight: bold;
|
|
42
|
+
line-height: var(--vgui-line-height);
|
|
32
43
|
}
|
|
33
44
|
|
|
34
45
|
h1,
|
|
35
46
|
h2 {
|
|
36
|
-
color:
|
|
47
|
+
color: var(--vgui-heading);
|
|
37
48
|
}
|
|
38
49
|
|
|
39
50
|
h1 {
|
|
@@ -41,82 +52,116 @@ h1 {
|
|
|
41
52
|
}
|
|
42
53
|
|
|
43
54
|
h2 {
|
|
44
|
-
font-size:
|
|
55
|
+
font-size: var(--vgui-font-size-large);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
h3,
|
|
59
|
+
h4,
|
|
60
|
+
h5,
|
|
61
|
+
h6 {
|
|
62
|
+
font-size: var(--vgui-font-size);
|
|
45
63
|
}
|
|
46
64
|
|
|
47
65
|
p {
|
|
48
66
|
text-align: left;
|
|
49
|
-
margin: 12px
|
|
50
|
-
color:
|
|
67
|
+
margin: 12px;
|
|
68
|
+
color: var(--vgui-text);
|
|
51
69
|
}
|
|
52
70
|
|
|
53
71
|
a {
|
|
54
72
|
text-decoration: none;
|
|
55
|
-
color:
|
|
73
|
+
color: var(--vgui-link);
|
|
56
74
|
}
|
|
57
75
|
|
|
58
76
|
a:hover {
|
|
77
|
+
color: var(--vgui-text-hover);
|
|
59
78
|
text-decoration: underline;
|
|
60
79
|
}
|
|
61
80
|
|
|
81
|
+
code,
|
|
82
|
+
kbd,
|
|
83
|
+
samp,
|
|
84
|
+
pre {
|
|
85
|
+
font-family: var(--vgui-font-mono);
|
|
86
|
+
font-size: var(--vgui-font-size-small);
|
|
87
|
+
}
|
|
88
|
+
|
|
62
89
|
code {
|
|
63
|
-
background:
|
|
90
|
+
background: var(--vgui-surface-dark);
|
|
64
91
|
padding: 0 3px;
|
|
65
|
-
font-family: monospace;
|
|
66
92
|
}
|
|
67
93
|
|
|
68
94
|
hr {
|
|
69
95
|
margin: 20px 0;
|
|
70
96
|
border: none;
|
|
71
97
|
height: 1px;
|
|
72
|
-
background-color:
|
|
98
|
+
background-color: var(--vgui-bevel-dark);
|
|
73
99
|
}
|
|
74
100
|
|
|
75
101
|
img {
|
|
76
102
|
object-fit: contain;
|
|
77
103
|
margin: 2px;
|
|
78
|
-
border: solid 2px
|
|
104
|
+
border: solid 2px var(--vgui-bevel-light);
|
|
79
105
|
}
|
|
80
106
|
|
|
81
107
|
fieldset {
|
|
82
|
-
border-top: solid
|
|
83
|
-
border-bottom: solid
|
|
84
|
-
border-left: solid
|
|
85
|
-
border-right: solid
|
|
108
|
+
border-top: solid var(--vgui-bevel-width) var(--vgui-bevel-dark);
|
|
109
|
+
border-bottom: solid var(--vgui-bevel-width) var(--vgui-bevel-light);
|
|
110
|
+
border-left: solid var(--vgui-bevel-width) var(--vgui-bevel-dark);
|
|
111
|
+
border-right: solid var(--vgui-bevel-width) var(--vgui-bevel-light);
|
|
86
112
|
}
|
|
87
113
|
|
|
88
114
|
legend {
|
|
89
115
|
text-transform: uppercase;
|
|
90
|
-
letter-spacing:
|
|
91
|
-
font-size:
|
|
92
|
-
color:
|
|
116
|
+
letter-spacing: var(--vgui-chrome-tracking);
|
|
117
|
+
font-size: var(--vgui-font-size-small);
|
|
118
|
+
color: var(--vgui-text-strong);
|
|
93
119
|
font-weight: bold;
|
|
94
120
|
}
|
|
95
121
|
|
|
122
|
+
/*
|
|
123
|
+
* `.vgui-crisp` — opt-in pixel-perfect rendering.
|
|
124
|
+
*
|
|
125
|
+
* Deliberately a class and never a global rule: disabling font smoothing and
|
|
126
|
+
* enabling `image-rendering: pixelated` overrides the user's own rendering
|
|
127
|
+
* preferences and hurts legibility at small sizes. Apply it to a subtree only
|
|
128
|
+
* when chasing literal 2003 fidelity. Components that ship a `.vgui-crisp`
|
|
129
|
+
* rule use it to swap the accessible focus ring for Valve's own.
|
|
130
|
+
*/
|
|
131
|
+
.vgui-crisp {
|
|
132
|
+
-webkit-font-smoothing: none;
|
|
133
|
+
-moz-osx-font-smoothing: grayscale;
|
|
134
|
+
image-rendering: pixelated;
|
|
135
|
+
}
|
|
136
|
+
|
|
96
137
|
/* Shared layout helpers */
|
|
97
138
|
|
|
98
|
-
.flex-row {
|
|
139
|
+
.vgui-flex-row {
|
|
99
140
|
display: flex;
|
|
100
141
|
flex-direction: row;
|
|
101
142
|
align-items: flex-start;
|
|
102
143
|
}
|
|
103
144
|
|
|
104
|
-
.flex-column {
|
|
145
|
+
.vgui-flex-column {
|
|
105
146
|
display: flex;
|
|
106
147
|
flex-direction: column;
|
|
107
148
|
align-items: flex-start;
|
|
108
149
|
}
|
|
109
150
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
151
|
+
/*
|
|
152
|
+
* Raised and inset bevels. Light from the top-left, as VGUI draws it: a raised
|
|
153
|
+
* box is light on top/left and dark on bottom/right, and an inset box is the
|
|
154
|
+
* exact inverse. Widths come from `--vgui-bevel-width` so a border that must
|
|
155
|
+
* stay 1px under zoom can be pinned instead.
|
|
156
|
+
*/
|
|
157
|
+
.vgui-bevel {
|
|
158
|
+
border-style: solid;
|
|
159
|
+
border-width: var(--vgui-bevel-width);
|
|
160
|
+
border-color: var(--vgui-bevel-light) var(--vgui-bevel-dark)
|
|
161
|
+
var(--vgui-bevel-dark) var(--vgui-bevel-light);
|
|
115
162
|
}
|
|
116
163
|
|
|
117
|
-
.
|
|
118
|
-
border-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
border-right: solid 1px #899281;
|
|
122
|
-
}
|
|
164
|
+
.vgui-bevel--inset {
|
|
165
|
+
border-color: var(--vgui-bevel-dark) var(--vgui-bevel-light)
|
|
166
|
+
var(--vgui-bevel-light) var(--vgui-bevel-dark);
|
|
167
|
+
}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Green Steam (VGUI) design tokens.
|
|
3
|
+
*
|
|
4
|
+
* Every token is declared on `[data-vgui-theme]` and never on `:root`, so a
|
|
5
|
+
* component can be dropped into a page without theming the page. Components
|
|
6
|
+
* read these tokens bare — a component that has no sensible shared token
|
|
7
|
+
* declares a component-local `--vgui-<name>-*` property instead, always as
|
|
8
|
+
* `var(--vgui-shared-token, <literal>)` so it still resolves unthemed.
|
|
9
|
+
*
|
|
10
|
+
* Derived from VGUI.css <https://github.com/AlpyneDreams/vgui.css> (MIT) and
|
|
11
|
+
* Valve's own `steamscheme.res` / `steam.styles`. See `docs/foundations.md` §3
|
|
12
|
+
* for the palette and §9 for the theme layer.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
[data-vgui-theme] {
|
|
16
|
+
/* --- Surfaces (docs/foundations.md §3) --- */
|
|
17
|
+
--vgui-surface: #4c5844; /* GreenBG */
|
|
18
|
+
--vgui-surface-alt: #4a5942; /* almost-light-primary */
|
|
19
|
+
--vgui-surface-light: #5a6a50; /* LightGreenBG */
|
|
20
|
+
--vgui-surface-dark: #3e4637; /* DarkGreenBG */
|
|
21
|
+
/* Field and popup interiors. Every VGUI `TextEntry` and `ComboBox` paints a
|
|
22
|
+
* genuinely black inset rather than a darker green — it is the one place the
|
|
23
|
+
* theme leaves the palette, and it is what makes the caret legible. */
|
|
24
|
+
--vgui-field-bg: #000000;
|
|
25
|
+
|
|
26
|
+
/* --- Bevel (§4) --- */
|
|
27
|
+
--vgui-bevel-light: #899281; /* BorderBright, community value */
|
|
28
|
+
--vgui-bevel-light-strong: #b8c4ad; /* shadelighter */
|
|
29
|
+
--vgui-bevel-dark: #292d23; /* BorderDark, community value */
|
|
30
|
+
--vgui-bevel-width: 1px;
|
|
31
|
+
|
|
32
|
+
/* --- Text --- */
|
|
33
|
+
--vgui-text: #d8ded3; /* OffWhite */
|
|
34
|
+
--vgui-text-strong: #ffffff; /* White */
|
|
35
|
+
--vgui-text-muted: #a0aa95; /* Label */
|
|
36
|
+
--vgui-text-dim: #758666; /* DimListText */
|
|
37
|
+
--vgui-text-disabled: #75806f; /* DisabledText1 */
|
|
38
|
+
--vgui-text-disabled-shadow: #282e22; /* DisabledText2 */
|
|
39
|
+
--vgui-heading: #c4b550; /* Maize */
|
|
40
|
+
--vgui-text-hover: #e3e41f;
|
|
41
|
+
|
|
42
|
+
/* --- Accent --- */
|
|
43
|
+
--vgui-accent: #c4b550; /* Maize */
|
|
44
|
+
--vgui-accent-dark: #91863c; /* MaizeBG */
|
|
45
|
+
--vgui-accent-darker: #96892d;
|
|
46
|
+
--vgui-selection-bg: #96892d;
|
|
47
|
+
--vgui-selection-text: #232421;
|
|
48
|
+
--vgui-border-selection: #000000;
|
|
49
|
+
|
|
50
|
+
/* --- Status --- */
|
|
51
|
+
--vgui-steam-green: #7ea64b; /* FullGreen */
|
|
52
|
+
--vgui-success: #1ae225;
|
|
53
|
+
--vgui-warning: #c4b550;
|
|
54
|
+
--vgui-danger: #e2251a;
|
|
55
|
+
--vgui-info: #0900ff;
|
|
56
|
+
--vgui-link: #aaaaaa;
|
|
57
|
+
/* Console error lines. `Highlight3` (`steam.styles:91`) is a deliberately
|
|
58
|
+
* muted brick rather than `--vgui-danger`'s signal red — the console prints
|
|
59
|
+
* errors constantly, so they must not shout. */
|
|
60
|
+
--vgui-console-error: #ad4547;
|
|
61
|
+
|
|
62
|
+
/* --- Server-browser ping bars --- */
|
|
63
|
+
--vgui-ping-low: #6a1610;
|
|
64
|
+
--vgui-ping-medium: #91863c;
|
|
65
|
+
--vgui-ping-high: #4c5844;
|
|
66
|
+
|
|
67
|
+
/* --- Friends roster (docs/foundations.md §3) --- */
|
|
68
|
+
--vgui-friends-selected: #111111;
|
|
69
|
+
--vgui-friends-ignored: #f86c4f;
|
|
70
|
+
--vgui-friends-avatar-over: #ffffff;
|
|
71
|
+
|
|
72
|
+
/* --- Clay property-sheet chrome (§3) --- */
|
|
73
|
+
--vgui-clay-surface: #464646; /* ClayBG */
|
|
74
|
+
--vgui-clay-light: #686a65; /* LightClayBG */
|
|
75
|
+
--vgui-clay-button: #7d8078; /* LightClayButtonBG */
|
|
76
|
+
--vgui-clay-bottom: #5c5957; /* ClaySheetBottom */
|
|
77
|
+
--vgui-clay-dark: #2f312d; /* DarkClayBG */
|
|
78
|
+
--vgui-clay-glyph: #adb5a8; /* ClayLightGreen */
|
|
79
|
+
--vgui-clay-glyph-dim: #a6aca2; /* ClayDimLightGreen */
|
|
80
|
+
|
|
81
|
+
/* --- Typography (§5) --- */
|
|
82
|
+
--vgui-font: "Trebuchet MS", "Verdana", "DejaVu Sans", Tahoma, sans-serif;
|
|
83
|
+
--vgui-font-mono: "Lucida Console", "DejaVu Sans Mono", Consolas, monospace;
|
|
84
|
+
--vgui-font-size: 14px;
|
|
85
|
+
--vgui-font-size-small: 12px;
|
|
86
|
+
--vgui-font-size-large: 16px;
|
|
87
|
+
--vgui-line-height: 1.25;
|
|
88
|
+
--vgui-chrome-tracking: 2px;
|
|
89
|
+
|
|
90
|
+
/* --- Metrics (§6) ---
|
|
91
|
+
* A recurring scale of 2, 4, 6, 8, 10, 12, 18, 20, 25, 26 falls out of
|
|
92
|
+
* Valve's layout files. There is deliberately no 4/8px grid. */
|
|
93
|
+
--vgui-control-height: 25px;
|
|
94
|
+
--vgui-button-min-width: 75px;
|
|
95
|
+
--vgui-checkbox-size: 15px;
|
|
96
|
+
--vgui-titlebar-height: 18px;
|
|
97
|
+
--vgui-frame-control-size: 20px;
|
|
98
|
+
--vgui-resize-grip: 12px;
|
|
99
|
+
--vgui-progress-height: 26px;
|
|
100
|
+
--vgui-progress-fill: 16px;
|
|
101
|
+
--vgui-progress-gutter: 4px;
|
|
102
|
+
--vgui-slider-track-height: 4px;
|
|
103
|
+
--vgui-slider-thumb-width: 8px;
|
|
104
|
+
--vgui-slider-thumb-height: 16px;
|
|
105
|
+
--vgui-dialog-button-width: 92px;
|
|
106
|
+
--vgui-dialog-button-height: 24px;
|
|
107
|
+
--vgui-window-max-width: 780px;
|
|
108
|
+
--vgui-field-inset: 4px;
|
|
109
|
+
/* WCAG 2.5.8 minimum target size. Valve's 18px `--small` chrome falls below
|
|
110
|
+
* it, so those controls grow an invisible hit area to this. */
|
|
111
|
+
--vgui-min-target-size: 24px;
|
|
112
|
+
|
|
113
|
+
/* --- Scrollbar (§6, §7)
|
|
114
|
+
* The bar is 18px with an 18px button at each end, and it is drawn three
|
|
115
|
+
* ways: the `Scrollbar` component's button/gutter/thumb tree, `ScrollArea`'s
|
|
116
|
+
* lighter copy of it, and the platform skin in `styles/scrollbars.css` that
|
|
117
|
+
* every self-scrolling component opts into with `.vgui-scroll-surface`. All
|
|
118
|
+
* three read these tokens, so one override restyles every bar on the page.
|
|
119
|
+
*
|
|
120
|
+
* Note the inversion people get backwards: the *gutter* is the light green
|
|
121
|
+
* and the *thumb* is the standard surface green, not the other way round. */
|
|
122
|
+
--vgui-scrollbar-size: 18px;
|
|
123
|
+
--vgui-scrollbar-button-size: 18px;
|
|
124
|
+
--vgui-scrollbar-glyph-width: 7px;
|
|
125
|
+
--vgui-scrollbar-glyph-height: 4px;
|
|
126
|
+
--vgui-scrollbar-glyph-color: var(--vgui-text-muted);
|
|
127
|
+
--vgui-scrollbar-gutter: var(--vgui-surface-light);
|
|
128
|
+
--vgui-scrollbar-thumb: var(--vgui-surface);
|
|
129
|
+
--vgui-scrollbar-corner: var(--vgui-surface-light);
|
|
130
|
+
|
|
131
|
+
/* --- Focus (§4)
|
|
132
|
+
* Valve's literal rings are invisible on these surfaces (1.87:1), so the
|
|
133
|
+
* accessible ring is the default and the Valve ring is available to
|
|
134
|
+
* components that explicitly opt into pixel-perfect rendering. */
|
|
135
|
+
--vgui-focus-ring: 2px solid var(--vgui-accent);
|
|
136
|
+
--vgui-focus-ring-offset: -3px;
|
|
137
|
+
--vgui-focus-ring-valve: 1px dashed var(--vgui-bevel-dark);
|
|
138
|
+
--vgui-focus-ring-valve-offset: -4px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/*
|
|
142
|
+
* `vgui1` — the bevel colours exactly as `steamscheme.res` defines them, for
|
|
143
|
+
* anyone chasing 2003 fidelity. See docs/foundations.md §8.
|
|
144
|
+
*/
|
|
145
|
+
[data-vgui-theme='vgui1'] {
|
|
146
|
+
--vgui-bevel-light: #808080;
|
|
147
|
+
--vgui-bevel-dark: #282e22;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/*
|
|
151
|
+
* `black` — the `blacksteam` palette from VGUI.css. Note the field interior is
|
|
152
|
+
* genuinely black here, which is why the `green` theme's placeholder contrast
|
|
153
|
+
* problem (docs/foundations.md §10) does not apply to this variant.
|
|
154
|
+
*/
|
|
155
|
+
[data-vgui-theme='black'] {
|
|
156
|
+
--vgui-surface: #212121;
|
|
157
|
+
--vgui-surface-alt: #212121;
|
|
158
|
+
--vgui-surface-light: #181818;
|
|
159
|
+
--vgui-surface-dark: #080808;
|
|
160
|
+
--vgui-bevel-light: #323232;
|
|
161
|
+
--vgui-bevel-light-strong: #4a4a4a;
|
|
162
|
+
--vgui-bevel-dark: #080808;
|
|
163
|
+
--vgui-accent: #f0b43f;
|
|
164
|
+
--vgui-accent-dark: #96892d;
|
|
165
|
+
--vgui-heading: #f0b43f;
|
|
166
|
+
--vgui-ping-high: #212121;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/*
|
|
170
|
+
* `warm` — the "TF2-esque" variant shipped in OldSteam-Theme's `universal.css`.
|
|
171
|
+
*/
|
|
172
|
+
[data-vgui-theme='warm'] {
|
|
173
|
+
--vgui-surface: #393532;
|
|
174
|
+
--vgui-surface-alt: #393532;
|
|
175
|
+
--vgui-surface-light: #a39884;
|
|
176
|
+
--vgui-surface-dark: #221f1c;
|
|
177
|
+
--vgui-bevel-light: #4a453d;
|
|
178
|
+
--vgui-bevel-light-strong: #6b6457;
|
|
179
|
+
--vgui-bevel-dark: #4a453d;
|
|
180
|
+
--vgui-text: #d9d9d9;
|
|
181
|
+
--vgui-text-muted: #c8bca2;
|
|
182
|
+
--vgui-text-dim: #c8bca2;
|
|
183
|
+
--vgui-text-disabled: #575248;
|
|
184
|
+
--vgui-text-disabled-shadow: #575248;
|
|
185
|
+
--vgui-steam-green: #4a453d;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/*
|
|
189
|
+
* `clay` — the grey property-sheet chrome. Valve deliberately renders the
|
|
190
|
+
* settings sheets less green than the rest of the client.
|
|
191
|
+
*/
|
|
192
|
+
[data-vgui-theme='clay'] {
|
|
193
|
+
--vgui-surface: #464646;
|
|
194
|
+
--vgui-surface-alt: #464646;
|
|
195
|
+
--vgui-surface-light: #686a65;
|
|
196
|
+
--vgui-surface-dark: #2f312d;
|
|
197
|
+
--vgui-bevel-light: #7d8078;
|
|
198
|
+
--vgui-bevel-light-strong: #adb5a8;
|
|
199
|
+
--vgui-bevel-dark: #2f312d;
|
|
200
|
+
--vgui-accent: #adb5a8;
|
|
201
|
+
--vgui-heading: #adb5a8;
|
|
202
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../../src/test/a11y.ts"],"names":[],"mappings":"AAWA,uEAAuE;AACvE,wBAAsB,cAAc,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAM9E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dalcvil/steam-green-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Tree-shakable React components for the classic Green Steam (VGUI) theme.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -38,6 +38,8 @@
|
|
|
38
38
|
"default": "./dist/index.js"
|
|
39
39
|
},
|
|
40
40
|
"./styles/theme.css": "./dist/styles/theme.css",
|
|
41
|
+
"./styles/tokens.css": "./dist/styles/tokens.css",
|
|
42
|
+
"./styles/scrollbars.css": "./dist/styles/scrollbars.css",
|
|
41
43
|
"./package.json": "./package.json"
|
|
42
44
|
},
|
|
43
45
|
"peerDependencies": {
|
|
@@ -50,19 +52,28 @@
|
|
|
50
52
|
"@storybook/addon-a11y": "^10.6.0",
|
|
51
53
|
"@storybook/addon-docs": "^10.6.0",
|
|
52
54
|
"@storybook/react-vite": "^10.6.0",
|
|
55
|
+
"@testing-library/dom": "^10.4.1",
|
|
56
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
57
|
+
"@testing-library/react": "^16.3.3",
|
|
58
|
+
"@testing-library/user-event": "^14.6.7",
|
|
53
59
|
"@types/node": "^24.10.0",
|
|
54
60
|
"@types/react": "^19.3.0",
|
|
55
61
|
"@types/react-dom": "^19.3.0",
|
|
56
62
|
"@vitejs/plugin-react": "^6.1.1",
|
|
63
|
+
"axe-core": "^4.13.0",
|
|
64
|
+
"jsdom": "^30.0.1",
|
|
57
65
|
"react": "^19.3.0",
|
|
58
66
|
"react-dom": "^19.3.0",
|
|
59
67
|
"storybook": "^10.6.0",
|
|
60
68
|
"typescript": "^7.0.2",
|
|
61
|
-
"vite": "^8.3.0"
|
|
69
|
+
"vite": "^8.3.0",
|
|
70
|
+
"vitest": "^5.0.0"
|
|
62
71
|
},
|
|
63
72
|
"scripts": {
|
|
64
73
|
"build": "vite build && tsc -p tsconfig.build.json",
|
|
65
74
|
"typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.node.json",
|
|
75
|
+
"test": "vitest run",
|
|
76
|
+
"test:watch": "vitest",
|
|
66
77
|
"storybook": "storybook dev -p 6006",
|
|
67
78
|
"build-storybook": "storybook build",
|
|
68
79
|
"changeset": "changeset",
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Green Steam button.
|
|
3
|
-
*
|
|
4
|
-
* The upstream VGUI.css targets the bare `button` element. As a component we
|
|
5
|
-
* scope the same declarations to `.greensteam-button` so the component can be
|
|
6
|
-
* dropped into any page without restyling every button on it.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
.greensteam-button {
|
|
10
|
-
color: white;
|
|
11
|
-
background-color: #4c5844;
|
|
12
|
-
height: 25px;
|
|
13
|
-
min-width: 75px;
|
|
14
|
-
padding: 0 8px;
|
|
15
|
-
cursor: pointer;
|
|
16
|
-
border-top: solid 1px #899281;
|
|
17
|
-
border-bottom: solid 1px #292d23;
|
|
18
|
-
border-left: solid 1px #899281;
|
|
19
|
-
border-right: solid 1px #292d23;
|
|
20
|
-
font-family: inherit;
|
|
21
|
-
font-size: inherit;
|
|
22
|
-
font-weight: lighter;
|
|
23
|
-
text-align: left;
|
|
24
|
-
-webkit-font-smoothing: none;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.greensteam-button:active {
|
|
28
|
-
border-top: solid 1px #292d23;
|
|
29
|
-
border-bottom: solid 1px #899281;
|
|
30
|
-
border-left: solid 1px #292d23;
|
|
31
|
-
border-right: solid 1px #899281;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.greensteam-button:focus-visible {
|
|
35
|
-
outline: 1px dashed #292d23;
|
|
36
|
-
outline-offset: -4px;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.greensteam-button:disabled {
|
|
40
|
-
color: #8b9481;
|
|
41
|
-
cursor: default;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.greensteam-button--full-width {
|
|
45
|
-
display: block;
|
|
46
|
-
width: 100%;
|
|
47
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ButtonHTMLAttributes } from 'react';
|
|
2
|
-
import './GreenButton.css';
|
|
3
|
-
export interface GreenButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
-
/** Stretch the button across the full width of its container. */
|
|
5
|
-
fullWidth?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare const GreenButton: import("react").ForwardRefExoticComponent<GreenButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
8
|
-
//# sourceMappingURL=GreenButton.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GreenButton.d.ts","sourceRoot":"","sources":["../../../src/components/GreenButton/GreenButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAEjD,OAAO,mBAAmB,CAAA;AAE1B,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC/E,iEAAiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,gHAStB,CAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from "react";
|
|
2
|
-
import "./GreenButton.css";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
//#region src/components/GreenButton/GreenButton.tsx
|
|
5
|
-
var GreenButton = forwardRef(function GreenButton({ className, type = "button", fullWidth = false, ...rest }, ref) {
|
|
6
|
-
const classes = ["greensteam-button"];
|
|
7
|
-
if (fullWidth) classes.push("greensteam-button--full-width");
|
|
8
|
-
if (className) classes.push(className);
|
|
9
|
-
return /* @__PURE__ */ jsx("button", {
|
|
10
|
-
ref,
|
|
11
|
-
type,
|
|
12
|
-
className: classes.join(" "),
|
|
13
|
-
...rest
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
GreenButton.displayName = "GreenButton";
|
|
17
|
-
//#endregion
|
|
18
|
-
export { GreenButton };
|
|
19
|
-
|
|
20
|
-
//# sourceMappingURL=GreenButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GreenButton.js","names":[],"sources":["../../../src/components/GreenButton/GreenButton.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport type { ButtonHTMLAttributes } from 'react'\n\nimport './GreenButton.css'\n\nexport interface GreenButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Stretch the button across the full width of its container. */\n fullWidth?: boolean\n}\n\nexport const GreenButton = forwardRef<HTMLButtonElement, GreenButtonProps>(function GreenButton(\n { className, type = 'button', fullWidth = false, ...rest },\n ref,\n) {\n const classes = ['greensteam-button']\n if (fullWidth) classes.push('greensteam-button--full-width')\n if (className) classes.push(className)\n\n return <button ref={ref} type={type} className={classes.join(' ')} {...rest} />\n})\n\nGreenButton.displayName = 'GreenButton'\n"],"mappings":";;;;AAUA,IAAa,cAAc,WAAgD,SAAS,YAClF,EAAE,WAAW,OAAO,UAAU,YAAY,OAAO,GAAG,QACpD,KACA;CACA,MAAM,UAAU,CAAC,mBAAmB;CACpC,IAAI,WAAW,QAAQ,KAAK,+BAA+B;CAC3D,IAAI,WAAW,QAAQ,KAAK,SAAS;CAErC,OAAO,oBAAC,UAAD;EAAa;EAAW;EAAM,WAAW,QAAQ,KAAK,GAAG;EAAG,GAAI;CAAO,CAAA;AAChF,CAAC;AAED,YAAY,cAAc"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Green Steam panel.
|
|
3
|
-
*
|
|
4
|
-
* Reproduces the upstream `.window` / `.box` container: a light-green body with
|
|
5
|
-
* the beveled VGUI border, plus the uppercase title bar upstream renders via
|
|
6
|
-
* `.window::before { content: attr(name) }`. Here the title bar is a real
|
|
7
|
-
* element, so the text is selectable and no attribute trick is needed.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
.greensteam-panel {
|
|
11
|
-
background-color: #4c5844;
|
|
12
|
-
padding: 10px;
|
|
13
|
-
box-sizing: border-box;
|
|
14
|
-
margin: 0 0 20px;
|
|
15
|
-
border-top: solid 1px #899281;
|
|
16
|
-
border-bottom: solid 1px #292d23;
|
|
17
|
-
border-left: solid 1px #899281;
|
|
18
|
-
border-right: solid 1px #292d23;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.greensteam-panel__titlebar {
|
|
22
|
-
display: block;
|
|
23
|
-
position: relative;
|
|
24
|
-
height: 18px;
|
|
25
|
-
line-height: 18px;
|
|
26
|
-
margin-bottom: 1em;
|
|
27
|
-
color: white;
|
|
28
|
-
font-size: 12px;
|
|
29
|
-
font-weight: bold;
|
|
30
|
-
text-transform: uppercase;
|
|
31
|
-
letter-spacing: 2px;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.greensteam-panel--inset {
|
|
35
|
-
background-color: #3e4637;
|
|
36
|
-
border-top: solid 1px #292d23;
|
|
37
|
-
border-bottom: solid 1px #899281;
|
|
38
|
-
border-left: solid 1px #292d23;
|
|
39
|
-
border-right: solid 1px #899281;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.greensteam-panel--rounded {
|
|
43
|
-
border: none;
|
|
44
|
-
border-radius: 10px;
|
|
45
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
-
import './GreenPanel.css';
|
|
3
|
-
export interface GreenPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
-
/** Uppercase VGUI title bar text. Omit it to render a panel without one. */
|
|
5
|
-
heading?: ReactNode;
|
|
6
|
-
/** Darken the body to the VGUI "inset" look, e.g. for read-only content. */
|
|
7
|
-
inset?: boolean;
|
|
8
|
-
/** Round the corners and drop the beveled border. */
|
|
9
|
-
rounded?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare const GreenPanel: import("react").ForwardRefExoticComponent<GreenPanelProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
12
|
-
//# sourceMappingURL=GreenPanel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GreenPanel.d.ts","sourceRoot":"","sources":["../../../src/components/GreenPanel/GreenPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtD,OAAO,kBAAkB,CAAA;AAEzB,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE,4EAA4E;IAC5E,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,UAAU,4GAerB,CAAA"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { forwardRef } from "react";
|
|
2
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import "./GreenPanel.css";
|
|
4
|
-
//#region src/components/GreenPanel/GreenPanel.tsx
|
|
5
|
-
var GreenPanel = forwardRef(function GreenPanel({ className, heading, inset = false, rounded = false, children, ...rest }, ref) {
|
|
6
|
-
const classes = ["greensteam-panel"];
|
|
7
|
-
if (inset) classes.push("greensteam-panel--inset");
|
|
8
|
-
if (rounded) classes.push("greensteam-panel--rounded");
|
|
9
|
-
if (className) classes.push(className);
|
|
10
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
11
|
-
ref,
|
|
12
|
-
className: classes.join(" "),
|
|
13
|
-
...rest,
|
|
14
|
-
children: [heading != null && /* @__PURE__ */ jsx("div", {
|
|
15
|
-
className: "greensteam-panel__titlebar",
|
|
16
|
-
children: heading
|
|
17
|
-
}), children]
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
GreenPanel.displayName = "GreenPanel";
|
|
21
|
-
//#endregion
|
|
22
|
-
export { GreenPanel };
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=GreenPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GreenPanel.js","names":[],"sources":["../../../src/components/GreenPanel/GreenPanel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport type { HTMLAttributes, ReactNode } from 'react'\n\nimport './GreenPanel.css'\n\nexport interface GreenPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** Uppercase VGUI title bar text. Omit it to render a panel without one. */\n heading?: ReactNode\n /** Darken the body to the VGUI \"inset\" look, e.g. for read-only content. */\n inset?: boolean\n /** Round the corners and drop the beveled border. */\n rounded?: boolean\n}\n\nexport const GreenPanel = forwardRef<HTMLDivElement, GreenPanelProps>(function GreenPanel(\n { className, heading, inset = false, rounded = false, children, ...rest },\n ref,\n) {\n const classes = ['greensteam-panel']\n if (inset) classes.push('greensteam-panel--inset')\n if (rounded) classes.push('greensteam-panel--rounded')\n if (className) classes.push(className)\n\n return (\n <div ref={ref} className={classes.join(' ')} {...rest}>\n {heading != null && <div className=\"greensteam-panel__titlebar\">{heading}</div>}\n {children}\n </div>\n )\n})\n\nGreenPanel.displayName = 'GreenPanel'\n"],"mappings":";;;;AAcA,IAAa,aAAa,WAA4C,SAAS,WAC7E,EAAE,WAAW,SAAS,QAAQ,OAAO,UAAU,OAAO,UAAU,GAAG,QACnE,KACA;CACA,MAAM,UAAU,CAAC,kBAAkB;CACnC,IAAI,OAAO,QAAQ,KAAK,yBAAyB;CACjD,IAAI,SAAS,QAAQ,KAAK,2BAA2B;CACrD,IAAI,WAAW,QAAQ,KAAK,SAAS;CAErC,OACE,qBAAC,OAAD;EAAU;EAAK,WAAW,QAAQ,KAAK,GAAG;EAAG,GAAI;EAAjD,UAAA,CACG,WAAW,QAAQ,oBAAC,OAAD;GAAK,WAAU;GAA8B,UAAA;EAAa,CAAA,GAC7E,QACE;;AAET,CAAC;AAED,WAAW,cAAc"}
|