@materialwebunofficial/antigravity-themes 0.0.0-stage → 1.0.4

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 ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
package/NOTICE ADDED
@@ -0,0 +1,30 @@
1
+ antigravity-themes
2
+ Copyright 2026 The antigravity-themes contributors
3
+ Licensed under the Apache License, Version 2.0 (see LICENSE).
4
+
5
+ An unofficial project. It is not affiliated with, endorsed by or sponsored by
6
+ Google LLC. "Antigravity" is a trademark of Google LLC.
7
+
8
+ This product includes third-party work:
9
+
10
+ 1. md3e-web (@materialwebunofficial/md3e-web) 1.0.4 and 1.0.14
11
+ https://materialwebunofficial.github.io
12
+ Licensed under the Apache License, Version 2.0.
13
+ vendor/md3e/components.js is built from its md-loading-indicator,
14
+ md-progress-indicator and md-menu components and the modules they import
15
+ (1.0.14); themes/md3e-tokens.css is generated from its tokens and color
16
+ engine (1.0.4). See vendor/md3e/SOURCE.txt. Its own license and notice are
17
+ in vendor/md3e/LICENSE and vendor/md3e/NOTICE.
18
+
19
+ 2. Roboto (variable font), vendor/md3e/roboto-variable.woff2
20
+ Copyright The Roboto Project Authors.
21
+ Licensed under the SIL Open Font License, Version 1.1 (vendor/md3e/Roboto-OFL.txt).
22
+
23
+ 3. Material Symbols (glyph outlines in themes/md3e-icons.css and src/)
24
+ Copyright Google LLC.
25
+ Licensed under the Apache License, Version 2.0.
26
+
27
+ 4. Material Color Utilities (the color schemes in themes/md3e-tokens.css were
28
+ generated with md3e-web's port of it)
29
+ Copyright Google LLC.
30
+ Licensed under the Apache License, Version 2.0.
package/README.md CHANGED
@@ -1,3 +1,295 @@
1
- # Temporary Holding Version
1
+ # antigravity-themes
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Two themes for Antigravity Desktop: **Matte** and **Material 3 Expressive**
4
+ (in five colors). They are applied to the running app; no app file is changed.
5
+
6
+ This is an unofficial project. It is not affiliated with, endorsed by or
7
+ sponsored by Google.
8
+
9
+ ## Install
10
+
11
+ ```sh
12
+ npx -y @materialwebunofficial/antigravity-themes install
13
+ ```
14
+
15
+ That is all. It takes a few seconds, needs no administrator rights, and it is
16
+ permanent: the themes return at every logon and every Antigravity start, until
17
+ you uninstall them. It needs [Node.js](https://nodejs.org) 22 or newer.
18
+
19
+ On Windows, if PowerShell says running scripts is disabled, use `npx.cmd` in
20
+ place of `npx`.
21
+
22
+ ### For AI agents
23
+
24
+ If you were asked to install these themes, this is the whole job:
25
+
26
+ 1. Run the command above once, from any folder except a copy of this
27
+ repository. On Windows, use `npx.cmd`, which works in every shell.
28
+ 2. Read the last line. `Done.` and exit code 0 mean the themes are installed,
29
+ applied and permanent. Otherwise the output says what is wrong and the exit
30
+ code is 1.
31
+
32
+ The command checks its own result, so nothing else is needed: do not clone this
33
+ repository, read further, restart Antigravity, change its settings or files, or
34
+ take screenshots to confirm. Do not use `on` or `start` in its place; they are
35
+ not permanent.
36
+
37
+ If Node.js is missing or too old, install it (`winget install OpenJS.NodeJS.LTS`
38
+ on Windows, `brew install node` on macOS), then run the command in a new shell.
39
+
40
+ To check later, run the same command with `status` in place of `install`: exit
41
+ code 0 means installed and permanent.
42
+
43
+ ## Screenshots
44
+
45
+ ![Material 3 Expressive](https://raw.githubusercontent.com/materialwebunofficial/antigravity-themes/main/docs/md3e.png)
46
+
47
+ ![Matte](https://raw.githubusercontent.com/materialwebunofficial/antigravity-themes/main/docs/matte.png)
48
+
49
+ [Watch the demo video (27 seconds)](https://github.com/materialwebunofficial/antigravity-themes/blob/main/docs/antigravity-themes.mp4)
50
+
51
+ ## Requirements
52
+
53
+ - Antigravity Desktop. Tested with version 2.28 on Windows 11.
54
+ macOS and Linux are supported in the code but untested.
55
+ - [Node.js](https://nodejs.org) 22 or newer. Check with `node --version`.
56
+
57
+ ## What install does
58
+
59
+ 1. Copies this package to a folder in your user profile:
60
+
61
+ | System | Folder |
62
+ | ------- | ------ |
63
+ | Windows | `%LOCALAPPDATA%\antigravity-themes` |
64
+ | macOS | `~/Library/Application Support/antigravity-themes` |
65
+ | Linux | `$XDG_DATA_HOME/antigravity-themes` (default `~/.local/share/antigravity-themes`) |
66
+
67
+ 2. Adds an entry that starts the themes when you log in, with no window:
68
+
69
+ | System | Entry |
70
+ | ------- | ----- |
71
+ | Windows | `antigravity-themes.vbs` in your Startup folder (`shell:startup`) |
72
+ | macOS | `~/Library/LaunchAgents/dev.antigravity-themes.plist` |
73
+ | Linux | `~/.config/autostart/antigravity-themes.desktop` |
74
+
75
+ The entry runs the Node.js you installed with, by its full path. If that
76
+ path changes (for example after switching versions with a version
77
+ manager), run `install` again.
78
+
79
+ To skip this, use `npx -y @materialwebunofficial/antigravity-themes install --no-autostart` and
80
+ run `npx -y @materialwebunofficial/antigravity-themes start` when you want the themes.
81
+
82
+ **Direct / Native Install (Zero background processes):**
83
+ Use `npx -y @materialwebunofficial/antigravity-themes install --native` to inject the themes directly into Antigravity's Electron resources. This runs with ZERO background processes, no listening ports, and no startup entries.
84
+
85
+ 3. Starts a small background Node.js process. It applies the theme to every
86
+ Antigravity window, keeps it applied when a window reloads, and waits
87
+ quietly while Antigravity is closed.
88
+
89
+ 4. Waits until the open windows have the theme and reports the result. If
90
+ Antigravity is closed, the theme appears when it starts.
91
+
92
+ ## Choosing a theme
93
+
94
+ - **Matte**: open the **Theme** menu in the title bar.
95
+ - **Material 3 Expressive**: the title bar menus (Antigravity, Workspace,
96
+ View, Window, Theme) are gathered into one menu button at the top left.
97
+ Open it, then **Theme**.
98
+ - **Ctrl+Shift+F12** switches to the next theme (Control, not Command, on
99
+ macOS too).
100
+ - From a terminal: `npx -y @materialwebunofficial/antigravity-themes theme` lists the themes, and
101
+ `npx -y @materialwebunofficial/antigravity-themes theme md3e-ocean` switches every window to one.
102
+
103
+ | Key | Theme |
104
+ | ------------- | ----- |
105
+ | `matte` | Matte (the default) |
106
+ | `md3e-teal` | Material 3 Expressive, Teal |
107
+ | `md3e-ocean` | Material 3 Expressive, Ocean |
108
+ | `md3e-forest` | Material 3 Expressive, Forest |
109
+ | `md3e-amber` | Material 3 Expressive, Amber |
110
+ | `md3e-coral` | Material 3 Expressive, Coral |
111
+
112
+ Your choice is remembered. Light and dark follow Antigravity's own
113
+ appearance setting; both themes have a light and a dark version.
114
+
115
+ ## What the themes change
116
+
117
+ **Matte** is quiet and fast: a near-black window holding one rounded panel,
118
+ small neutral steps between surfaces, 1px lines for structure, and no
119
+ gradients, blur, glow or looping animation.
120
+
121
+ **Material 3 Expressive** maps the Material 3 Expressive design system onto
122
+ the app: its color schemes, the Roboto type scale, shapes, state layers,
123
+ ripples and spring motion; Material Symbols Rounded icons; a navigation
124
+ drawer style sidebar; the app menu button; a shape-morphing loading
125
+ indicator while the agent works; and wavy progress bars for running
126
+ background commands and tasks. The menu and the indicators are the
127
+ [md3e-web](https://materialwebunofficial.github.io) components.
128
+
129
+ Both themes also add:
130
+
131
+ - **Context** at the top of the Overview panel: how full the conversation's
132
+ context window is and what takes it up (system prompt, tools, rules, MCP
133
+ tools, skills and so on), with a warning at 80% and at 95%. The app does
134
+ not report context window sizes, so they are assumed by model family:
135
+ Gemini 1M tokens, Claude 200k, GPT-OSS 128k.
136
+ - **Token counts** under each finished agent turn, for example
137
+ `2.5k in · 358 out · 142k cache`.
138
+ - **Wrap lines** and **Line numbers** buttons beside "Copy code" in chat
139
+ code blocks. Line numbers are not copied.
140
+
141
+ ## Commands
142
+
143
+ Run each as `npx -y @materialwebunofficial/antigravity-themes <command>`.
144
+
145
+ | Command | What it does |
146
+ | ------- | ------------ |
147
+ | `install [--no-autostart]` | Install, add the logon entry, and start the background process (see above) |
148
+ | `uninstall` | Remove everything `install` added (see below) |
149
+ | `start` | Start the background process |
150
+ | `stop` | Stop it. Open windows keep the theme until they reload |
151
+ | `on` | Apply the themes to the open windows once, without the background process |
152
+ | `off` | Stop the background process and restore the app's own look in the open windows. The themes come back at the next logon unless you uninstall |
153
+ | `theme [key]` | List the themes, or switch every window to one |
154
+ | `status` | Show what is installed and running, and which windows are themed. Exit code 1 if not permanent |
155
+ | `run [--dev]` | Run the background process in this terminal |
156
+ | `help`, `--version` | Show the commands, or the version |
157
+
158
+ ## Update
159
+
160
+ ```sh
161
+ npx -y @materialwebunofficial/antigravity-themes@latest install
162
+ ```
163
+
164
+ This replaces the installed copy and restarts the background process.
165
+
166
+ ## Uninstall
167
+
168
+ ```sh
169
+ npx -y @materialwebunofficial/antigravity-themes uninstall
170
+ ```
171
+
172
+ This stops the background process, restores the app's own look in the open
173
+ windows, and deletes the logon entry and the install folder.
174
+
175
+ Three small cookies stay in Antigravity's own storage (see Privacy). They
176
+ have no effect without this tool.
177
+
178
+ ## How it works
179
+
180
+ Antigravity starts with the Chrome DevTools Protocol enabled on a local
181
+ port, on every launch, and writes that port number to a file named
182
+ `DevToolsActivePort` in its user data folder (`%APPDATA%\Antigravity` on
183
+ Windows, `~/Library/Application Support/Antigravity` on macOS,
184
+ `~/.config/Antigravity` on Linux). This tool does not open that port or
185
+ change how the app starts.
186
+
187
+ The background process reads the port, connects to it on `127.0.0.1`, and in
188
+ each window:
189
+
190
+ - runs the theme script, which adds a style sheet and a few small elements
191
+ (the menu, the code block buttons, the indicators), and
192
+ - registers the same script to run again whenever the window reloads.
193
+
194
+ To find and stop the background process, the other commands talk to it on
195
+ `127.0.0.1` through a random port and a random token that it writes to
196
+ `run.json` in the install folder while it runs.
197
+
198
+ Things to know:
199
+
200
+ - If a future version of Antigravity stops opening that port, the themes
201
+ cannot be applied. The background process then waits, and `status` says
202
+ so.
203
+ - Any program running on your computer can connect to that port. That is
204
+ true with or without this tool; it is how Antigravity is built.
205
+
206
+ ## Privacy
207
+
208
+ - No telemetry. The tool makes no network requests except to `127.0.0.1`
209
+ (npx itself downloads the package from npm).
210
+ - Inside the app, the context and token features read data the app already
211
+ holds, to show it: token usage from the app's own interface state, and the
212
+ breakdown of the context from the app's own `getTokenBase()` call, the same
213
+ call its Customizations screen makes. Nothing is sent anywhere.
214
+ - Stored in Antigravity's own storage, as cookies:
215
+
216
+ | Cookie | Holds |
217
+ | ------ | ----- |
218
+ | `agy-theme` | Your theme choice |
219
+ | `agy-code` | The Wrap lines and Line numbers settings |
220
+ | `agy-usage` | Running token totals for your last 20 conversations, by conversation id |
221
+
222
+ - Stored in the install folder: `run.json` (process id, control port, token
223
+ and version, while running), `run.log` (when windows were found and themed,
224
+ with their internal addresses; started anew when it reaches 512 KB) and, on
225
+ Windows, `start.vbs` (starts the background process with no window).
226
+
227
+ ## Compatibility and known limits
228
+
229
+ - The themes are written against Antigravity 2.28's interface (its class
230
+ names, element ids and component data). An app update can break parts of
231
+ them until this package is updated. If that happens,
232
+ `npx -y @materialwebunofficial/antigravity-themes off` restores the app's own look at once.
233
+ - Windows 11 is tested. macOS and Linux follow the platforms' usual folders
234
+ and logon entries but have not been tested.
235
+ - The context window sizes are assumptions (see above).
236
+ - Only one background process runs at a time; `install` and `start` reuse
237
+ or replace it.
238
+
239
+ ## Troubleshooting
240
+
241
+ - `npx -y @materialwebunofficial/antigravity-themes status` shows whether the themes are installed,
242
+ whether the background process runs, and which Antigravity windows are
243
+ themed.
244
+ - The log is `run.log` in the install folder.
245
+ - Antigravity looks wrong after an update: run `npx -y @materialwebunofficial/antigravity-themes off`
246
+ and [open an issue](https://github.com/materialwebunofficial/antigravity-themes/issues) with your Antigravity version.
247
+
248
+ ## Development
249
+
250
+ ```sh
251
+ git clone https://github.com/materialwebunofficial/antigravity-themes.git
252
+ cd antigravity-themes
253
+ node bin/cli.mjs stop
254
+ node bin/cli.mjs run --dev
255
+ ```
256
+
257
+ With Antigravity open, `run --dev` applies the files from your checkout and
258
+ applies them again whenever something in `src/`, `themes/` or `vendor/`
259
+ changes. Stop an installed background process first, as above: only one runs
260
+ at a time.
261
+
262
+ | Path | Contents |
263
+ | ---- | -------- |
264
+ | `bin/cli.mjs` | The commands |
265
+ | `lib/` | Finding Antigravity, the DevTools connection, logon entries |
266
+ | `src/` | The scripts that run in the app: the theme host (menus, theme switching, ripples) and the context, token, code block and indicator features |
267
+ | `themes/` | `index.json` (the theme list) and the CSS of each theme |
268
+ | `vendor/md3e/` | The md3e-web components, the Roboto font, and their licenses |
269
+ | `tools/` | Generators for files in `themes/` and `vendor/` (below) |
270
+
271
+ The generated files are committed, so you need these only to rebuild them:
272
+
273
+ ```sh
274
+ node tools/build-md3e.mjs <path to the md3e-web package> # themes/md3e-tokens.css
275
+ node tools/build-vendor.mjs <path to the md3e-web package> # vendor/md3e/components.js
276
+ python tools/build-icons.py <app main.js> <Material Symbols Rounded woff2> # themes/md3e-icons.css, needs fontTools
277
+ ```
278
+
279
+ ## Credits
280
+
281
+ - Made with [md3e-web](https://materialwebunofficial.github.io)
282
+ (`@materialwebunofficial/md3e-web`), Apache License 2.0: the components,
283
+ design tokens and color engine behind the Material 3 Expressive theme.
284
+ - [Roboto](https://fonts.google.com/specimen/Roboto), SIL Open Font License 1.1.
285
+ - [Material Symbols](https://github.com/google/material-design-icons),
286
+ Apache License 2.0.
287
+ - [Material Color Utilities](https://github.com/material-foundation/material-color-utilities),
288
+ Apache License 2.0.
289
+
290
+ ## License
291
+
292
+ Apache License 2.0. See [LICENSE](https://github.com/materialwebunofficial/antigravity-themes/blob/main/LICENSE) and [NOTICE](https://github.com/materialwebunofficial/antigravity-themes/blob/main/NOTICE).
293
+
294
+ "Antigravity" is a trademark of Google LLC. This project is not affiliated
295
+ with, endorsed by or sponsored by Google.