
Security News
RubyGems Adds Cooldown Feature to Bundler for Newly Published Gems
RubyGems and Bundler 4.0.13 introduced an opt-in cooldown feature that delays newly published gems during dependency resolution.
Dynamic CSS variables of all conceivable UI colors for any Adobe application
Library to grab all conceivable UI colors from any Adobe application and expose them as dynamic CSS variables which update automatically to any user-defined theme or theme changes.
| App | Illustrator | After Effects | Photoshop | Premiere Pro | InDesign | Audition |
|---|---|---|---|---|---|---|
| Support | 100% | 100% | 98%* | 98%* | 98%* | 98%* |
| Theme Type | 4-tier | Gradient | 4-tier | Gradient | 4-tier | Gradient |
* Base calculations done in Illustrator and After Effects. If you notice inaccuracies in other apps, let me know and I'll update them.
The panel in the center is UI Spy. Notice the variables changing value on the left during app theme changes, and the panel's elements being automatically recolored in the center. There's no manual handling at all -- each element has a single CSS variable and never needs to care about user theme ever again.
After Effects is far more consistent than other apps with it's color scheme. Notice the hover state of buttons is the same as the color of it's default text -- the button text should invert:
Templates from generator-cep-vue-cli already include starlette
Install the package from NPM:
npm install starlette
Now import starlette and call the init() function anywhere in your panel:
<!-- In a .vue file -->
<script>
import starlette from 'starlette'
// Or via require:
const starlette = require('starlette').default;
export default {
name: 'yourComponent',
mounted() {
starlette.init();
// Now all CSS variables are exposed and reactive.
// Can also do import and init all at once:
require('starlette').default.init();
},
}
This gives you the freedom to write concise CSS with no need for any logic about the theme, simply assign the appropriate color:
.checkbox {
/* This takes care of every theme, matching the host app exactly */
fill: var(--color-checkbox);
}
/* Easily apply the hover state with a single line of CSS via the hover variable */
.checkbox:hover {
fill: var(--color-checkbox-hover);
}
.checkbox-disabled {
fill: var(--color-checkbox-disabled);
}
This is the literal CSS from the screen capture above, located in UI Spy's components/preview/checkbox.vue file.
| Variable Name | Darkest | Dark | Light | Lightest |
|---|---|---|---|---|
| --color-bg | #323232 | #535353 | #b8b8b8 | #f0f0f0 |
| --color-default | #cccccc | #f4f4f4 | #232323 | #484848 |
| --color-text-label | #979797 | #c7c7c7 | #232323 | #6d6d6d |
| --color-icon | #b7b7b7 | #c2c2c2 | #414141 | #535353 |
| --color-selection | #5b9bd3 | #46a0f5 | #3468b2 | #3d72b9 |
| --color-divider | #2a2a2a | #4d4d4d | #a8a8a8 | #dcdcdc |
| --color-btn-hover | #3f3f3f | #5f5f5f | #c4c4c4 | #fcfcfc |
| --color-btn-border | #545454 | #757575 | #232323 | #bdbdbd |
| --color-btn-primary | #5b9bd3 | #5b9bd3 | #3468b2 | #3d72b9 |
| --color-btn-disabled | #3a3a3a | #5a5a5a | #b0b0b0 | #e6e6e6 |
| --color-btn-active | #1f1f1f | #303030 | #4b4b4b | #bdbdbd |
| --color-btn-disabled-text | #545454 | #757575 | #8f8f8f | #bdbdbd |
| --color-btn-primary-text | #ffffff | #ffffff | #ffffff | #ffffff |
| --color-btn-pill-hover | #cccccc | #ffffff | #232323 | #484848 |
| --color-btn-pill-active | #7f7f7f | #c8c8c8 | #4b4b4b | #6d6d6d |
| --color-btn-pill-border | #cccccc | #ffffff | #232323 | #484848 |
| --color-btn-icon-active | #2e2e2e | #4f4f4f | #b0b0b0 | #e6e6e6 |
| --color-btn-icon-active-border | #4b4b4b | #6c6c6c | #adadad | #dddddd |
| --color-btn-icon-hover | #3f3f3f | #606060 | #c4c4c4 | #fcfcfc |
| --color-btn-icon-hover-border | #4b4b4b | #6c6c6c | #adadad | #dddddd |
| --color-btn-toolbar-active | #1f1f1f | #303030 | #969696 | #bdbdbd |
| --color-btn-toolbar-active-border | #3f3f3f | #575757 | #838383 | #a7a7a7 |
| --color-btn-toolbar-hover | #292929 | #3e3e3e | #dcdcdc | #fafafa |
| --color-btn-toolbar-hover-border | #4b4b4b | #5a5a5a | #b4b4b4 | #bdbdbd |
| --color-input | #262626 | #464646 | #e3e3e3 | #ffffff |
| --color-input-border | #3a3a3a | #606060 | #a8a8a8 | #dcdcdc |
| --color-input-text | #cccccc | #ffffff | #232323 | #484848 |
| --color-input-focus | #ffffff | #ffffff | #e3e3e3 | #ffffff |
| --color-input-focus-border | #5b9bd3 | #5b9bd3 | #3468b2 | #3d72b9 |
| --color-input-focus-text | #2a2a2a | #4c4c4c | #232323 | #484848 |
| --color-dropdown | #262626 | #4c4c4c | #c4c4c4 | #fcfcfc |
| --color-dropdown-active | #1e1e1e | #303030 | #969696 | #bdbdbd |
| --color-dropdown-hover | #3a3a3a | #5a5a5a | #cecece | #ffffff |
| --color-dropdown-border | #3a3a3a | #606060 | #a8a8a8 | #dcdcdc |
| --color-dropdown-item-hover | #3f3f3f | #606060 | #a8a8a8 | #dcdcdc |
| --color-dropdown-item-selected | #519dd6 | #5b9bd3 | #3868b2 | #3d72b9 |
| --color-checkbox | #979797 | #c8c8c8 | #4b4b4b | #6d6d6d |
| --color-checkbox-hover | #cccccc | #ffffff | #232323 | #484848 |
| --color-checkbox-disabled | #545454 | #757575 | #8f8f8f | #bdbdbd |
| --color-scrollbar | #2a2a2a | #4c4c4c | #c4c4c4 | #ffffff |
| --color-scrollbar-arrow | #727272 | #969696 | #6f6f6f | #969696 |
| --color-scrollbar-thumb | #3f3f3f | #606060 | #a8a8a8 | #dcdcdc |
| --color-scrollbar-thumb-hover | #545454 | #757575 | #8f8f8f | #bdbdbd |
| --color-tooltip-border | #767676 | #787878 | #777777 | #777777 |
| --color-header | #262626 | #434343 | #a2a2a2 | #dbdbdb |
| --color-header-border | #212121 | #383838 | #949494 | #cccccc |
| Variable Name | Darkest | Medium | Lightest |
|---|---|---|---|
| --color-bg | #232323 | #3c3c3c | #565656 |
| --color-default | #8a8a8a | #a3a3a3 | #bdbdbd |
| --color-text-label | #8a8a8a | #a3a3a3 | #bdbdbd |
| --color-icon | #b2b2b2 | #cbcbcb | #e5e5e5 |
| --color-selection | #4892cb | #4892cb | #4892cb |
| --color-divider | #2d2d2d | #464646 | #606060 |
| --color-btn-default | #232323 | #3c3c3c | #565656 |
| --color-btn-hover | #8a8a8a | #a3a3a3 | #bdbdbd |
| --color-btn-border | #8a8a8a | #a3a3a3 | #bdbdbd |
| --color-btn-primary | #4885c6 | #4885c6 | #4885c6 |
| --color-btn-disabled | #2a2a2a | #434343 | #5d5d5d |
| --color-btn-active | #646464 | #7d7d7d | #979797 |
| --color-btn-disabled-text | #464646 | #5f5f5f | #797979 |
| --color-btn-primary-text | #ffffff | #ffffff | #ffffff |
| --color-btn-pill-hover | #8a8a8a | #a3a3a3 | #bdbdbd |
| --color-btn-pill-border | #e2e2e2 | #fbfbfb | #ffffff |
| --color-btn-pill-active | #8a8a8a | #a3a3a3 | #bdbdbd |
| --color-btn-icon-active | #161616 | #2f2f2f | #494949 |
| --color-btn-icon-active-border | #2e2e2e | #474747 | #616161 |
| --color-btn-icon-hover | #2a2a2a | #434343 | #5d5d5d |
| --color-btn-icon-hover-border | #2e2e2e | #474747 | #616161 |
| --color-btn-toolbar-active | #161616 | #2f2f2f | #494949 |
| --color-btn-toolbar-active-border | #2e2e2e | #474747 | #616161 |
| --color-btn-toolbar-hover | #2a2a2a | #434343 | #5d5d5d |
| --color-btn-toolbar-hover-border | #2e2e2e | #474747 | #616161 |
| --color-input | #161616 | #2f2f2f | #494949 |
| --color-input-border | #2e2e2e | #474747 | #616161 |
| --color-input-text | #b2b2b2 | #cbcbcb | #e5e5e5 |
| --color-input-focus | #e8e8e8 | #ffffff | #ffffff |
| --color-input-focus-border | #4892cb | #4892cb | #4892cb |
| --color-input-focus-text | #161616 | #2f2f2f | #494949 |
| --color-dropdown | #1d1d1d | #363636 | #505050 |
| --color-dropdown-active | #232323 | #3c3c3c | #565656 |
| --color-dropdown-hover | #2a2a2a | #434343 | #5d5d5d |
| --color-dropdown-border | #2e2e2e | #474747 | #616161 |
| --color-dropdown-item | #1d1d1d | #363636 | #505050 |
| --color-dropdown-item-hover | #464646 | #5f5f5f | #797979 |
| --color-dropdown-item-selected | #4c86c6 | #4c86c6 | #4c86c6 |
| --color-checkbox | #8a8a8a | #a3a3a3 | #bdbdbd |
| --color-checkbox-hover | #bababa | #d3d3d3 | #ededed |
| --color-checkbox-disabled | #464646 | #5f5f5f | #797979 |
| --color-scrollbar | #1d1d1d | #363636 | #505050 |
| --color-scrollbar-thumb | #313131 | #4a4a4a | #646464 |
| --color-scrollbar-arrow | #919191 | #aaaaaa | #c4c4c4 |
| --color-scrollbar-thumb-hover | #464646 | #5f5f5f | #797979 |
| --color-tooltip-border | #777777 | #909090 | #aaaaaa |
| --color-header | #333333 | #4c4c4c | #666666 |
| --color-header-border | #161616 | #2f2f2f | #494949 |
init() should assign low-specificity base rules like font-family: 'Open Sans', sans-serif;, assign the <body> tag's background-color to --color-bg, and automatically assign the scrollbar's style.button-text variabledropdown is anomalously white, causing the text to be unreadable -- maybe include a dropdown-text variable to combat thisinput-disabled variableFAQs
Dynamic CSS variables of all conceivable UI colors for any Adobe application
The npm package starlette receives a total of 51 weekly downloads. As such, starlette popularity was classified as not popular.
We found that starlette demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
RubyGems and Bundler 4.0.13 introduced an opt-in cooldown feature that delays newly published gems during dependency resolution.

Security News
pnpm 11.5 now recognizes npm staged publish approvals in release metadata, preventing those releases from being mistaken for lower-trust package publishes.

Security News
Federal audit finds NIST lacked a plan to clear the NVD backlog, wasted funds on duplicate work, and delayed use of CISA data.