You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR flattens the color theme object and introduces a new helper,
`getColorValue`, that helps pull a color from the theme. This should
actually make tldraw#6462 (and other color-related work) much more practical.
## Flattening `DefaultColorThemePalette`
This PR flattens the `DefaultColorThemePalette`, removing the nested
properties and renaming them instead.
```ts
theme.black.frame.fill
```
Becomes
```ts
theme.black.frameFill
```
## `getColorValue`
This pull request standardizes and simplifies how color values are
accessed throughout the codebase by introducing and consistently using
the new `getColorValue` utility function. This change replaces direct
property access on the `theme` object with calls to `getColorValue`,
improving maintainability and reducing the risk of errors due to
inconsistent color property keys. The update affects a wide range of
shape utilities, rendering logic, and example components.
```ts
theme.black.frameFill
```
Becomes
```ts
getColorValue(theme, 'black', 'frameFill')
```
**Refactoring color value access:**
* Replaced direct `theme` property access with `getColorValue` for all
shape utilities, including `ArrowShapeUtil`, `DrawShapeUtil`,
`GeoShapeUtil`, `FrameShapeUtil`, `HighlightShapeUtil`, `LineShapeUtil`,
and `NoteShapeUtil`, ensuring consistent and safer color retrieval.
* Updated SVG export logic to use `getColorValue` for determining frame
background color.
* Added `getColorValue` to imports in all affected files to support the
new color access pattern.
* Updated example components (`CardShapeUtil`, `CustomRenderer`,
`ShapeWithTldrawStylesExample`, `SpeechBubbleUtil`) to use
`getColorValue` instead of direct theme property access for colors in
rendering logic.
These changes collectively improve code consistency, make color logic
more robust, and pave the way for easier updates or extensions to color
theming in the future.
### Change type
- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [x] `api`
- [ ] `other`
### API changes
- Changes to the `DefaultColorThemePalette` object. Any color
customization may need to be refactored.
0 commit comments