diff --git a/README.md b/README.md index 33ad8bc..957034e 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,21 @@ Compare Image Slider is a simple interactive component for comparing two images.

Comparison of two images

+ +## Styling + +Style the component using [CSS custom properties (variables)](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties). + +For example: + +```html + +``` + +| Variable | Description | Default | +| ---------------- | ---------------------- | ------- | +| `--handle-color` | Color of dividing line | `white` | diff --git a/package.json b/package.json index f3a87a9..a68d6f4 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,9 @@ "workspaces": [ "packages/*" ], + "scripts": { + "build": "lerna run build" + }, "devDependencies": { "@commitlint/cli": "^9.1.1", "@commitlint/config-conventional": "^9.1.1", diff --git a/packages/compare-image-slider/src/compare-image-slider.ts b/packages/compare-image-slider/src/compare-image-slider.ts index db99695..b559e31 100644 --- a/packages/compare-image-slider/src/compare-image-slider.ts +++ b/packages/compare-image-slider/src/compare-image-slider.ts @@ -60,7 +60,7 @@ export class CompareImageSlider extends LitElement { top: 50%; margin-left: -19px; margin-top: -19px; - border: 3px solid white; + border: 3px solid var(--handle-color, white); border-radius: 19px; box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5); cursor: ew-resize; @@ -75,7 +75,7 @@ export class CompareImageSlider extends LitElement { margin-left: -1.5px; width: 3px; height: 1000px; - background: white; + background: var(--handle-color, white); box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5); } @@ -88,7 +88,7 @@ export class CompareImageSlider extends LitElement { margin-left: -1.5px; width: 3px; height: 1000px; - background: white; + background: var(--handle-color, white); box-shadow: 0px 0px 12px rgba(51, 51, 51, 0.5); } diff --git a/packages/compare-image-slider/stories/index.stories.js b/packages/compare-image-slider/stories/index.stories.js index 5ef40d3..4242147 100644 --- a/packages/compare-image-slider/stories/index.stories.js +++ b/packages/compare-image-slider/stories/index.stories.js @@ -1,4 +1,5 @@ import { html } from "lit-html"; +import { styleMap } from "lit-html/directives/style-map.js"; import "../src/compare-image-slider.ts"; import before from "./images/asite1-1.jpg"; import after from "./images/asite1-2.jpg"; @@ -13,3 +14,16 @@ export const Default = () => html` `; + +export const Styling = () => { + const styles = { + "--handle-color": "black", + }; + + return html` + + + + + `; +}; diff --git a/packages/react-compare-image-slider/stories/index.stories.tsx b/packages/react-compare-image-slider/stories/index.stories.tsx index 34f745f..172e8b4 100644 --- a/packages/react-compare-image-slider/stories/index.stories.tsx +++ b/packages/react-compare-image-slider/stories/index.stories.tsx @@ -14,3 +14,15 @@ export const Default = () => ( ); + +export const Styling = () => { + const style = { + "--handle-color": "red", + } as React.CSSProperties; + + return ( +
+ +
+ ); +}; diff --git a/packages/svelte-compare-image-slider/stories/index.stories.js b/packages/svelte-compare-image-slider/stories/index.stories.js index 4383083..ba0e5b6 100644 --- a/packages/svelte-compare-image-slider/stories/index.stories.js +++ b/packages/svelte-compare-image-slider/stories/index.stories.js @@ -11,3 +11,8 @@ export const Default = () => ({ Component: Slider, props: { leftImage: leftImage, rightImage: rightImage }, }); + +export const Styling = () => ({ + Component: Slider, + props: { leftImage: leftImage, rightImage: rightImage, handleColor: "red" }, +}); diff --git a/packages/svelte-compare-image-slider/stories/slider.svelte b/packages/svelte-compare-image-slider/stories/slider.svelte index 0657683..a127b6d 100644 --- a/packages/svelte-compare-image-slider/stories/slider.svelte +++ b/packages/svelte-compare-image-slider/stories/slider.svelte @@ -3,12 +3,15 @@ export let leftImage; export let rightImage; + export let handleColor; + + let style = handleColor ? `--handle-color: ${handleColor};` : null; -
+
diff --git a/packages/vue-compare-image-slider/stories/Slider.stories.js b/packages/vue-compare-image-slider/stories/Slider.stories.js index dc757e0..a165efe 100644 --- a/packages/vue-compare-image-slider/stories/Slider.stories.js +++ b/packages/vue-compare-image-slider/stories/Slider.stories.js @@ -9,5 +9,10 @@ export default { export const Default = () => ({ components: { VueCompareImageSlider }, - template: ``, + template: ``, +}); + +export const Styling = () => ({ + components: { VueCompareImageSlider }, + template: ``, });