Repository navigation
Conversation
This change allows users to customize chart colors (markColor, markColorFade, etc.)
by passing a `chartColors` prop to the EmbeddingAtlas component. This provides
flexibility for theming and branding while maintaining backward compatibility with
default colors.
Changes:
- Add ChartColors interface and export it from api.ts
- Add chartColors prop to EmbeddingAtlasProps
- Add getChartColors() helper function to merge custom colors with defaults
- Update ChartContext to include customChartColors field
- Update all chart components (CountPlot, Histogram, BoxPlot, etc.) to use getChartColors()
- Pass chartColors through EmbeddingAtlas.svelte to chart context
Example usage:
```typescript
new EmbeddingAtlas(container, {
coordinator,
data: { table: "data", id: "id" },
chartColors: {
light: { markColor: "#ff6b6b", markColorFade: "#ffe0e0" },
dark: { markColor: "#ff6b6b", markColorFade: "#4d2020" }
}
});
```
dtunikov
marked this pull request as draft
October 29, 2025 09:58
Extends the customizable color system to include embedding view and table components.
Changes:
- Add `theme` field to EmbeddingViewConfig for customizing embedding view colors and fonts
- Export `Theme` type from table package for public API
- Add `tableTheme` prop to EmbeddingAtlasProps for customizing table colors and fonts
- Add `tableTheme` field to ChartContext and wire it through to Table component
- Update Table.svelte to merge custom theme with default theme
This complements the chart colors customization added in the previous commit,
providing a comprehensive color customization API for all visualization components.
Example usage:
```typescript
new EmbeddingAtlas(container, {
coordinator,
data: { table: "data", id: "id", projection: { x: "x", y: "y" } },
// Chart colors
chartColors: {
light: { markColor: "#ff6b6b" },
dark: { markColor: "#ff6b6b" }
},
// Embedding view theme (via config)
embeddingViewConfig: {
theme: {
clusterLabelColor: "#ff0000",
statusBarBackgroundColor: "rgba(255, 255, 255, 0.95)"
}
},
// Table theme
tableTheme: {
light: { primaryBackgroundColor: "#f5f5f5" },
dark: { primaryBackgroundColor: "#1a1a1a" }
}
});
```
dtunikov
marked this pull request as ready for review
October 29, 2025 10:05
Collaborator
|
Thanks a lot for the contribution! With #97 (where we unified many of the chart types into a common spec format), there's now a similar option ( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds the ability to customize chart colors (markColor, markColorFade, etc.) by passing a
chartColorsprop to the EmbeddingAtlas component. This provides flexibility for theming and branding while maintaining backward compatibility with default colors.This PR also adds theme property to EmbeddingAtlas react component, that let the clients customise embeddings view and table themes from outside.
Motivation
Users may want to customize the chart colors to match their application's theme or branding. Currently, the chart colors are hardcoded in the
chartColorsobject, making it impossible to override them without modifying the source code.Changes
ChartColorsinterface and exported it fromapi.tsfor TypeScript supportchartColorsprop toEmbeddingAtlasPropsinterfacegetChartColors()helper function to merge custom colors with defaultsChartContextto includecustomChartColorsfieldgetChartColors()EmbeddingAtlas.svelteto the chart contextExample Usage
Testing
npm run build)Checklist