Lily ਨਾਲ ਸ਼ੁਰੂਆਤ
ਇੱਕ ਫ੍ਰੇਮਵਰਕ ਚੁਣੋ, ਮੋਨੋਰੈਪੋ ਕਲੋਨ ਕਰੋ ਅਤੇ ਇਸ ਦੀ ਹੈੱਡਲੈੱਸ ਲਾਇਬ੍ਰੇਰੀ ਜਾਂ ਉਦਾਹਰਨ ਐਪ ਖੋਲ੍ਹੋ, ਅਤੇ ਆਪਣੇ ਪੰਨੇ ਆਪ ਬਣਾਉਣੇ ਸ਼ੁਰੂ ਕਰੋ। ਮਾਰਗਦਰਸ਼ਿਤ ਰਾਹ ਪਸੰਦ ਹੈ? ਇਸ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ ਟਿਊਟੋਰਿਅਲ.
ਇੰਸਟਾਲ ਕਰੋ
Lily ਇੱਕ Git ਮੋਨੋਰੈਪੋ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਹਰ ਫ੍ਰੇਮਵਰਕ ਦੀ ਹੈੱਡਲੈੱਸ ਲਾਇਬ੍ਰੇਰੀ, ਸਹਾਇਕ ਪੈਕੇਜਾਂ ਅਤੇ ਉਦਾਹਰਨ ਐਪ ਲਈ ਡਾਇਰੈਕਟਰੀ ਹੈ। ਇਸ ਨੂੰ ਅਜ਼ਮਾਉਣ ਦਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਤਰੀਕਾ ਮੋਨੋਰੈਪੋ ਕਲੋਨ ਕਰਨਾ ਅਤੇ ਆਪਣੇ ਸਟੈਕ ਲਈ ਹੈੱਡਲੈੱਸ ਲਾਇਬ੍ਰੇਰੀ ਖੋਲ੍ਹਣਾ ਹੈ:
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-react-headless
pnpm install
ਇਹੀ ਪੈਟਰਨ ਹੋਰ ਫ੍ਰੇਮਵਰਕਾਂ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈ:
@lilydesignsystem/html-headless— ਇੰਸਟਾਲ ਦੀ ਲੋੜ ਨਹੀਂ; ਕਾਪੀ ਕਰੋ.htmlਫਾਈਲਾਂ@lilydesignsystem/svelte-headless—pnpm install@lilydesignsystem/react-headless—pnpm install@lilydesignsystem/vue-headless—pnpm install@lilydesignsystem/angular-headless—pnpm install@lilydesignsystem/nunjucks-headless—pnpm installlily-design-system-blazor-headless—dotnet build
ਹੈੱਡਲੈੱਸ ਲਾਇਬ੍ਰੇਰੀਆਂ ਕਲੋਨ ਜਾਂ ਵੈਂਡਰ ਕਰਨ ਲਈ ਬਣਾਈਆਂ ਗਈਆਂ ਹਨ — ਸਰੋਤ ਨੂੰ ਸੱਚ ਦਾ ਸਰੋਤ ਮੰਨੋ ਅਤੇ ਜੋ ਚਾਹੀਦਾ ਹੈ ਉਹ ਕਾਪੀ ਕਰੋ। ਪਸੰਦ ਸਹਾਇਕ ਵਾਧੂ ਤੌਰ ਤੇ ਬਿਲਡ ਅਤੇ ਪ੍ਰਕਾਸ਼ਨ ਪਾਈਪਲਾਈਨ (JS ਫ੍ਰੇਮਵਰਕਾਂ ਲਈ npm, Blazor ਲਈ NuGet) ਵਾਲੇ ਇੰਸਟਾਲ ਕਰਨ ਯੋਗ ਪੈਕੇਜਾਂ ਵਜੋਂ ਆਉਂਦੇ ਹਨ।
ਹੈੱਡਲੈੱਸ ਕੰਪੋਨੈਂਟ ਵਰਤੋ
ਹੈੱਡਲੈੱਸ ਕੰਪੋਨੈਂਟ ਸਿਮੈਂਟਿਕ HTML, ARIA ਅਤੇ ਪ੍ਰੋਪ ਦਿੰਦੇ ਹਨ — ਪਰ CSS ਨਹੀਂ। ਹਰ ਫ੍ਰੇਮਵਰਕ ਵਿੱਚ Button ਇਹ ਹੈ:
HTML
<button class="button" type="button" aria-label="Save">
Save
</button>
Svelte
<script>
import Button from "lily-design-system-svelte-headless/components/Button/Button.svelte";
</script>
<Button onclick={save}>Save</Button>
React
import Button from "lily-design-system-react-headless/components/Button";
<Button onClick={save}>Save</Button>
Vue
<script setup>
import Button from "lily-design-system-vue-headless/components/Button.vue";
</script>
<Button @click="save">Save</Button>
Angular
import { Button } from "@lilydesignsystem/angular-headless";
@Component({
imports: [Button],
template: `<lily-button (click)="save()">Save</lily-button>`,
})
Blazor
<Button OnClick="Save">Save</Button>
Nunjucks
{% from "components/button/macro.njk" import button %}
{{ button({ text: "Save", type: "button" }) }}
ਸਟਾਈਲ ਕੀਤੀ ਉਦਾਹਰਨ ਵਰਤੋ
ਉਦਾਹਰਨ ਐਪਾਂ ਵਿੱਚ CSS, ਰੂਟ ਅਤੇ ਪੂਰੇ ਡੈਮੋ ਪੰਨੇ ਸ਼ਾਮਲ ਹਨ। ਪ੍ਰਯੋਗ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਤਰੀਕਾ SvelteKit, Next, Nuxt, Analog ਜਾਂ Eleventy ਉਦਾਹਰਨ ਐਪ ਚਲਾਉਣਾ ਅਤੇ ਇੱਥੇ ਡੈਮੋ ਦੇਖਣਾ ਹੈ /components.
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-svelte-sveltekit-examples
pnpm install
pnpm run dev
ਫਿਰ ਖੋਲ੍ਹੋ http://localhost:5173 ਅਤੇ ਇੱਥੇ ਬ੍ਰਾਊਜ਼ ਕਰੋ /components.
ਸਟਾਈਲਿੰਗ ਅਤੇ ਡਿਜ਼ਾਈਨ ਟੋਕਨ
ਹਰ ਕੰਪੋਨੈਂਟ ਆਪਣੇ ਰੂਟ ਐਲੀਮੈਂਟ ਉੱਤੇ ਇੱਕ ਕਬਾਬ-ਕੇਸ ਕਲਾਸ ਨਾਲ ਰੈਂਡਰ ਹੁੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਵਜੋਂ, <Button> ਇਸ ਤਰ੍ਹਾਂ ਰੈਂਡਰ ਹੁੰਦਾ ਹੈ <button class="button">। ਇਸ ਨੂੰ ਜਿਵੇਂ ਚਾਹੋ ਸਟਾਈਲ ਕਰੋ:
.button {
background: var(--my-primary);
color: #fff;
padding: 0.75rem 1.5rem;
border-radius: 0.5rem;
}
.button:hover { background: var(--my-primary-hover); }
Lily ਦੀ ਮੂਲ ਰੰਗ-ਪੱਟੀ (ਉਦਾਹਰਨ ਐਪਾਂ ਵਿੱਚ ਵਰਤੀ ਗਈ) ਇਹ ਹੈ:
- ਮੁੱਢਲਾ:
#2563eb - ਖ਼ਤਰਾ:
#dc2626 - ਚੇਤਾਵਨੀ:
#f59e0b - ਸਫਲਤਾ:
#16a34a - ਪੰਨੇ ਦੀ ਪਿੱਠਭੂਮੀ:
#f9fafb - ਕਾਰਡ ਦੀ ਪਿੱਠਭੂਮੀ:
#ffffff
ਇਹ ਸੁਝਾਅ ਹਨ, ਲੋੜਾਂ ਨਹੀਂ। ਇਨ੍ਹਾਂ ਨੂੰ ਆਪਣੀ ਬ੍ਰਾਂਡ ਰੰਗ-ਪੱਟੀ ਨਾਲ ਬਦਲੋ ਅਤੇ Lily ਖ਼ੁਸ਼ੀ ਨਾਲ ਨਾਲ ਆ ਜਾਂਦਾ ਹੈ।
ਤਿਆਰ ਥੀਮ
CSS ਸ਼ੁਰੂ ਤੋਂ ਨਹੀਂ ਲਿਖਣੀ ਚਾਹੁੰਦੇ? Lily ਦਿੰਦਾ ਹੈ 57 ਸੁਤੰਤਰ ਹਵਾਲਾ ਥੀਮ ਇਸ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ themes/ । ਹਰੇਕ ਇੱਕ ਸਟਾਈਲਸ਼ੀਟ ਹੈ ਜੋ Lily ਕਲਾਸ ਹੁੱਕਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦੀ ਹੈ — ਇਸ ਨੂੰ ਲਿੰਕ ਕਰੋ ਅਤੇ ਤੁਸੀਂ ਸਟਾਈਲ ਹੋ ਗਏ:
<link rel="stylesheet" href="/assets/themes/united-kingdom-government-digital-service.css" />
ਇਹ ਸੈੱਟ ਇਨ੍ਹਾਂ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ:
- ਜਨਤਕ ਖੇਤਰ — NHS England, NHS Scotland ਅਤੇ NHS Wales (ਹਰੇਕ ਮਰੀਜ਼-ਮੁਖੀ ਅਤੇ ਪ੍ਰੈਕਟੀਸ਼ਨਰ-ਮੁਖੀ ਰੂਪਾਂ ਵਿੱਚ), GOV.UK GDS, ਅਤੇ U.S. Web Design System।
- ਵਿਕਰੇਤਾ-ਪ੍ਰੇਰਿਤ — Adobe Spectrum, Mozilla Protocol।
- ਆਮ ਮੰਤਵ — light, dark, nord, dracula, wireframe, ਅਤੇ ਤੀਹ-ਕੁ ਹੋਰ।
ਥੀਮ ਸਿਲੈਕਟਰ ਵਰਤਦੇ ਹਨ :where(...), ਇਸ ਲਈ ਤੁਹਾਡੀ ਆਪਣੀ CSS ਹਮੇਸ਼ਾ ਨਿਰਧਾਰਤਤਾ ਵਿੱਚ ਜਿੱਤਦੀ ਹੈ। ਰਨਟਾਈਮ ਬਦਲਣ ਲਈ ਇਨ੍ਹਾਂ ਨੂੰ ਹੇਠਲੇ theme-picker ਸਹਾਇਕ ਨਾਲ ਜੋੜੋ, ਜਾਂ ਪਾਲਣਾ ਕਰੋ
ਥੀਮਿੰਗ ਟਿਊਟੋਰਿਅਲ.
ਪਸੰਦ ਸਹਾਇਕ
ਹਰ ਫ੍ਰੇਮਵਰਕ ਵਿੱਚ ਅੱਠ ਛੋਟੇ ਚੋਣਕਾਰ ਹਨ, ਹਰੇਕ ਦਾ ਆਪਣਾ
lily-design-system-{framework}-{package} ਪੈਕੇਜ ਹੈ (ਅਤੇ ਇੱਕ picker-bar ਜੋ ਇਨ੍ਹਾਂ ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਹੈ)। ਹਰੇਕ ਇੱਕ ਹੈੱਡਲੈੱਸ ਆਈਕਨ ਬਟਨ ਹੈ ਜੋ ਪੌਪਅੱਪ ਖੋਲ੍ਹਦਾ ਹੈ — ਲਿਸਟਬਾਕਸ, ਲਿੰਕਾਂ ਦੀ ਸੂਚੀ, ਖੋਜ ਫਾਰਮ, ਜਾਂ (date-time-picker ਲਈ) ਤਾਰੀਖ਼ ਚੋਣਕਾਰ ਡਾਇਲਾਗ — ਨੇਟਿਵ
<select>ਨਹੀਂ; SSR-ਸੁਰੱਖਿਅਤ ਹੈ; ਅਤੇ ਕੋਈ CSS ਨਹੀਂ ਦਿੰਦਾ:
-
theme-picker — ਪ੍ਰਬੰਧਿਤ
<link>ਨੂੰ ਬਦਲ ਕੇ ਰਨਟਾਈਮ ਤੇ ਥੀਮ ਸਟਾਈਲਸ਼ੀਟਾਂ ਲੋਡ ਕਰਦਾ ਹੈ, ਦਸਤਾਵੇਜ਼ ਉੱਤੇdata-themeਸੈੱਟ ਕਰਦਾ ਹੈ, ਅਤੇ ਚੋਣਵੇਂ ਤੌਰ ਤੇ ਇਸ ਵਿੱਚ ਸਥਾਈ ਰੂਪ ਵਿੱਚ ਸੰਭਾਲਦਾ ਹੈlocalStorage. -
locale-picker — ਸੈੱਟ ਕਰਦਾ ਹੈ
langਅਤੇdir(ਆਟੋਮੈਟਿਕ RTL ਖੋਜ ਨਾਲ) ਤਾਂ ਜੋ ਤੁਹਾਡੀ i18n ਲਾਇਬ੍ਰੇਰੀ ਪਿੱਛੇ ਚੱਲ ਸਕੇ; ਆਪ ਕੋਈ ਅਨੁਵਾਦ ਨਹੀਂ ਕਰਦਾ। -
text-size-picker — ਸੈੱਟ ਕਰਦਾ ਹੈ
data-text-sizeਦਸਤਾਵੇਜ਼ ਉੱਤੇ; ਤੁਹਾਡੀ CSS ਹਰ ਮੁੱਲ ਨੂੰ ਫੌਂਟ ਆਕਾਰ ਨਾਲ ਜੋੜਦੀ ਹੈ। -
motion-picker — ਸੈੱਟ ਕਰਦਾ ਹੈ
data-motionਦਸਤਾਵੇਜ਼ ਉੱਤੇ, ਮਹਿਮਾਨ ਦੀ ਘਟਾਈ-ਗਤੀ ਸੈਟਿੰਗ ਤੋਂ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋਏ; ਤੁਹਾਡੀ CSS ਅਤੇ ਸਕ੍ਰਿਪਟ ਫ਼ੈਸਲਾ ਕਰਦੇ ਹਨ ਕੀ ਦਬਾਉਣਾ ਹੈ। - search-picker — ਇੱਕ ਆਈਕਨ ਬਟਨ ਜੋ ਖੋਜ ਖੇਤਰ ਖੋਲ੍ਹਦਾ ਹੈ; ਜਮ੍ਹਾਂ ਕਰਨਾ ਖੋਜ ਪੰਨੇ ਉੱਤੇ ਲੈ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਕਾਰਵਾਈ ਦਾ ਮਾਲਕ ਹੈ, ਪਸੰਦ ਦਾ ਨਹੀਂ।
- link-picker — ਇੱਕ ਘਰ ਦਾ ਆਈਕਨ ਜੋ ਤੁਹਾਡੀ ਐਪ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਪੰਨਾ ਲਿੰਕਾਂ (ਹੋਮ, ਸਾਡੇ ਬਾਰੇ, ਸਾਡੇ ਨਾਲ ਸੰਪਰਕ ਕਰੋ, ਗੋਪਨੀਯਤਾ ਨੀਤੀ, …) ਦਾ ਮੀਨੂ ਖੋਲ੍ਹਦਾ ਹੈ। ਇੱਕ ਕਾਰਵਾਈ ਦਾ ਮਾਲਕ ਹੈ, ਪਸੰਦ ਦਾ ਨਹੀਂ।
- share-picker — ਨੇਟਿਵ ਸਾਂਝਾਕਰਨ ਸ਼ੀਟ ਜਾਂ ਖਪਤਕਾਰ-ਦਿੱਤੀ ਮੰਜ਼ਿਲਾਂ ਦੀ ਸੂਚੀ ਖੋਲ੍ਹਦਾ ਹੈ, ਨਾਲ URL ਕਾਪੀ ਕਰਨਾ। ਇੱਕ ਕਾਰਵਾਈ ਦਾ ਮਾਲਕ ਹੈ, ਪਸੰਦ ਦਾ ਨਹੀਂ: ਕੁਝ ਲਾਗੂ ਨਹੀਂ ਕਰਦਾ, ਕੁਝ ਸੰਭਾਲਦਾ ਨਹੀਂ।
-
date-time-picker — ਇੱਕ ਟੈਕਸਟ ਖੇਤਰ ਨਾਲ ਇੱਕ ਤਾਰੀਖ਼, ਸਮੇਂ, ਜਾਂ ਦੋਵਾਂ ਲਈ APG ਤਾਰੀਖ਼-ਚੋਣਕਾਰ ਡਾਇਲਾਗ। ਇੱਕ ਫਾਰਮ ਮੁੱਲ ਦਾ ਮਾਲਕ ਹੈ, ਪਸੰਦ ਦਾ ਨਹੀਂ: ISO ਸਟ੍ਰਿੰਗ ਇਸ ਨਾਲ ਆਉਂਦੀ-ਜਾਂਦੀ ਹੈ
<input type="date">.
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-svelte-theme-picker
Svelte ਕੈਟਾਲਾਗ ਮਿਆਰੀ ਹਵਾਲਾ ਹੈ; React, Vue, Angular, HTML, Nunjucks, Web Components ਅਤੇ Blazor ਪੋਰਟ ਇਕਰਾਰਨਾਮੇ-ਦਰ-ਇਕਰਾਰਨਾਮੇ ਇਸ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ। ਵੇਖੋ ਸਹਾਇਕ ਟਿਊਟੋਰਿਅਲ.
ਪਹੁੰਚਯੋਗਤਾ
ਕੰਪੋਨੈਂਟ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦੇ ਹਨ WCAG 2.2 AAA। ਉਹ ਇਨ੍ਹਾਂ ਪੈਟਰਨਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ:
- ਆਮ
<div>s. <label for="id">ਦੀ ਬਜਾਏ ਸਿਮੈਂਟਿਕ HTML ਐਲੀਮੈਂਟ, ਲੇਬਲਾਂ ਨੂੰ ਇਨਪੁੱਟਾਂ ਨਾਲ ਜੋੜਦੇ ਹੋਏ।aria-labelledby/aria-describedbyਆਪਸੀ ਹਵਾਲਿਆਂ ਲਈ।aria-invalid+aria-errormessageਗ਼ਲਤੀ ਸਥਿਤੀਆਂ ਲਈ।role="alert"ਅਤੇaria-liveਗਤੀਸ਼ੀਲ ਸਮੱਗਰੀ ਲਈ।aria-pressed,aria-expanded,aria-currentਸਥਿਤੀ ਲਈ।- ਗਰਿੱਡਾਂ ਲਈ ਰੋਵਿੰਗ
tabindex।
ਫੋਕਸ ਸੂਚਕ ਜਾਣ-ਬੁੱਝ ਕੇ ਖਪਤਕਾਰ ਦੁਆਰਾ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ — Lily ਕਦੇ ਵੀ ਮੂਲ ਫੋਕਸ ਰਿੰਗ ਨਹੀਂ ਬਣਾਉਂਦਾ ਜੋ ਤੁਹਾਡੇ ਡਿਜ਼ਾਈਨ ਨਾਲ ਟਕਰਾਏ। ਉਦਾਹਰਨ ਐਪਾਂ ਆਪਣੇ ਸਾਰੇ ਰੂਟਾਂ ਉੱਤੇ ਸਾਫ਼ axe-core ਬੇਸਲਾਈਨ ਰੱਖਦੀਆਂ ਹਨ।
ਅੰਤਰਰਾਸ਼ਟਰੀਕਰਨ
ਹਰ ਲੇਬਲ, ਪਲੇਸਹੋਲਡਰ, ਗ਼ਲਤੀ ਸੁਨੇਹਾ ਅਤੇ ਬਟਨ ਟੈਕਸਟ ਇੱਕ ਪ੍ਰੋਪ ਹੈ। ਕੋਈ ਪੱਕੀ ਲਿਖੀ ਸਟ੍ਰਿੰਗ ਨਹੀਂ ਹੈ। ਆਪਣੀ ਪਸੰਦ ਦਾ ਅਨੁਵਾਦ ਫ੍ਰੇਮਵਰਕ ਜੋੜੋ — Paraglide, i18next, vue-i18n, react-intl, .resx ਫਾਈਲਾਂ, ਕੁਝ ਵੀ।
ਤਾਰੀਖ਼ਾਂ, ਨੰਬਰਾਂ ਅਤੇ ਮੁਦਰਾਵਾਂ ਲਈ, ਕੰਪੋਨੈਂਟ ਪਹਿਲਾਂ ਤੋਂ ਫਾਰਮੈਟ ਕੀਤੀਆਂ ਸਟ੍ਰਿੰਗਾਂ ਸਵੀਕਾਰ ਕਰਦੇ ਹਨ: ਤੁਸੀਂ ਇਸ ਨਾਲ ਫਾਰਮੈਟ ਕਰਦੇ ਹੋ Intl.DateTimeFormat /
Intl.NumberFormat / ਆਪਣੀ ਪਸੰਦੀਦਾ ਲਾਇਬ੍ਰੇਰੀ ਅਤੇ ਨਤੀਜਾ ਪਾਸ ਕਰਦੇ ਹੋ।
locale-picker ਸਹਾਇਕ ਚੁਣੇ ਗਏ ਲੋਕੇਲ ਦਾ ਸੰਕੇਤ ਤੁਹਾਡੀ i18n ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਇਹ ਸੈੱਟ ਕਰਕੇ ਦਿੰਦਾ ਹੈ lang ਅਤੇ dir ਦਸਤਾਵੇਜ਼ ਰੂਟ ਉੱਤੇ।
ਟੈਸਟਿੰਗ
ਹਰ ਫ੍ਰੇਮਵਰਕ ਉਪ-ਪ੍ਰੋਜੈਕਟ ਆਪਣੇ ਮੁਹਾਵਰੇਦਾਰ ਸਟੈਕ ਨਾਲ ਆਪਣੇ ਟੈਸਟ ਦਿੰਦਾ ਹੈ:
- HTML: ਅਸਲ ਬ੍ਰਾਊਜ਼ਰ ਚਲਾਉਂਦਾ WebDriverIO।
- Svelte: Vitest +
@testing-library/svelte. - React: Vitest +
@testing-library/react. - Vue: Vitest +
@testing-library/vue. - Angular: Vitest + TestBed (Analog Vite ਪਲੱਗਇਨ ਰਾਹੀਂ)।
- Nunjucks: ਰੈਂਡਰ ਸਹਾਇਕ ਵਾਲਾ Vitest।
- Blazor: bUnit।
ਟੈਸਟ ਵਰਤਦੇ ਹਨ ਸਿਰਫ਼ Vitest ਦੇ ਬਿਲਟ-ਇਨ ਮੈਚਰ — ਕਦੇ ਨਹੀਂ
jest-dom ਮੈਚਰ। ਇਹ ਟੈਸਟ ਸੂਟਾਂ ਨੂੰ ਪੋਰਟੇਬਲ ਰੱਖਦਾ ਹੈ। ਉਦਾਹਰਨ ਐਪਾਂ Playwright ਐਂਡ-ਟੂ-ਐਂਡ ਸੂਟ, axe-core ਪਹੁੰਚਯੋਗਤਾ ਬੇਸਲਾਈਨਾਂ, ਅਤੇ ਜਵਾਬਦੇਹ ਵਿਊਪੋਰਟ ਛਾਣਬੀਣ ਜੋੜਦੀਆਂ ਹਨ।
AI ਏਜੰਟ
ਇਹ ਸਾਈਟ ਆਪਣੀ ਰੂਟ ਉੱਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦੀ ਹੈ llms.txt ਅਤੇ llms.json — ਆਪਣੇ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਪੰਨਿਆਂ ਦਾ ਚੁਣਿਆ ਨਕਸ਼ਾ, ਕਿਸੇ ਵੀ ਟੂਲ ਲਈ ਜੋ ਪਾਲਣਾ ਕਰਦਾ ਹੈ llms.txt ਰੀਤ ਦੀ.
ਮਿਆਰੀ ਮੋਨੋਰੈਪੋ ਵਾਧੂ ਤੌਰ ਤੇ ਦੋ ਦਿੰਦਾ ਹੈ
Claude Skills:
lily-design-system-skill: ਇੱਕ ਆਮ-ਮੰਤਵ ਹੁਨਰ ਜੋ ਸਿਸਟਮ ਨਾਲ ਬਣਾਉਣ ਵਾਲੇ ਹਰ ਕਿਸੇ ਲਈ Lily ਦੇ ਸੰਕਲਪਾਂ, ਸ਼ਬਦਾਵਲੀ ਅਤੇ ਰਚਨਾ ਪੈਟਰਨਾਂ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ, ਅਤੇ lily-design-system-maintainer-skill, ਇੱਕ ਤਕਨੀਕੀ ਹੁਨਰ ਜੋ ਇਸ ਉੱਤੇ ਕੰਮ ਕਰਨ ਵਾਲੇ ਹਰ ਕਿਸੇ ਲਈ ਮੋਨੋਰੈਪੋ ਦੇ ਲੋੜੀਂਦੀਆਂ-ਫਾਈਲਾਂ ਲੇਆਉਟ ਅਤੇ ਟੂਲਿੰਗ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ। ਦੋਵੇਂ ਇਸ ਦੀ ਰੂਟ ਵਿੱਚ ਹਨ
ਮਿਆਰੀ ਮੋਨੋਰੈਪੋ.
ਸਮੱਸਿਆ-ਨਿਵਾਰਨ
ਇੱਕ ਕੰਪੋਨੈਂਟ ਰੈਂਡਰ ਹੁੰਦਾ ਹੈ ਪਰ ਬਿਨਾਂ ਸਟਾਈਲ ਦਿਸਦਾ ਹੈ
ਇਹ ਹੈੱਡਲੈੱਸ ਹੈ ਜੋ ਇਰਾਦੇ ਅਨੁਸਾਰ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ — ਕੰਪੋਨੈਂਟ ਨਾਲ ਕੋਈ CSS ਨਹੀਂ ਆਉਂਦੀ। ਜਾਂ ਤਾਂ ਕੰਪੋਨੈਂਟ ਦੀ ਕਬਾਬ-ਕੇਸ ਕਲਾਸ ਦੇ ਮੁਕਾਬਲੇ CSS ਲਿਖੋ (ਹਰ ਕੈਟਾਲਾਗ ਪੰਨੇਉੱਤੇ ਦਿਖਾਈ ਗਈ) ਜਾਂ ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਇੱਕ ਲਿੰਕ ਕਰੋ 57 ਤਿਆਰ ਥੀਮ.
ਮੇਰੀ CSS ਥੀਮ ਉੱਤੇ ਲਾਗੂ ਹੁੰਦੀ ਨਹੀਂ ਜਾਪਦੀ
ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ — ਥੀਮ ਸਿਲੈਕਟਰ ਇਸ ਵਿੱਚ ਲਪੇਟੇ ਹੋਏ ਹਨ :where(...), ਜਿਸ ਦੀ ਨਿਰਧਾਰਤਤਾ ਜ਼ੀਰੋ ਹੈ। ਜੇ ਕੋਈ ਨਿਯਮ ਫਿਰ ਵੀ ਹਾਰਦਾ ਹੈ, ਤਾਂ ਜਾਂਚ ਕਰੋ ਕਿ ਤੁਹਾਡੀ ਸਟਾਈਲਸ਼ੀਟ ਥੀਮ ਦੇ <link> ਤੋਂ ਬਾਅਦ ਲੋਡ ਹੁੰਦੀ ਹੈ ਅਤੇ ਸਿਲੈਕਟਰ ਅਸਲ ਵਿੱਚ ਕੰਪੋਨੈਂਟ ਦੇ ਕਲਾਸ ਹੁੱਕ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।
pnpm install ਪੀਅਰ ਜਾਂ ਸੰਸਕਰਣ ਗ਼ਲਤੀ ਨਾਲ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ
ਮੌਜੂਦਾ pnpm (v10+) ਅਤੇ Node 22+ ਵਰਤੋ। ਹਰ ਉਪ-ਪ੍ਰੋਜੈਕਟ ਆਪਣੇ ਫ੍ਰੇਮਵਰਕ ਸੰਸਕਰਣ ਆਪਣੇ package.jsonਵਿੱਚ ਪਿੰਨ ਕਰਦਾ ਹੈ; ਜੇ ਤੁਹਾਡੀ ਗਲੋਬਲ ਟੂਲਚੇਨ ਪੁਰਾਣੀ ਹੈ, ਤਾਂ pnpm env use --global lts ਸਭ ਤੋਂ ਤੇਜ਼ ਹੱਲ ਹੈ।
ਸਕ੍ਰੀਨ ਰੀਡਰ ਕਿਸੇ ਨਿਯੰਤਰਣ ਦਾ ਗ਼ਲਤ ਨਾਮ ਐਲਾਨ ਕਰਦਾ ਹੈ
ਕੰਪੋਨੈਂਟ ਦਾ ਲੋੜੀਂਦਾ label ਪ੍ਰੋਪ ਜਾਂਚੋ — ਜਿਨ੍ਹਾਂ ਕੰਪੋਨੈਂਟਾਂ ਵਿੱਚ ਦਿਸਣ ਵਾਲਾ ਟੈਕਸਟ ਨਹੀਂ ਹੁੰਦਾ ਉਨ੍ਹਾਂ ਨੂੰ ਇੱਕ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਅਤੇ ਖਪਤਕਾਰ-ਦਿੱਤੇ
aria-label / aria-labelledby ਜੋ rest-props ਰਾਹੀਂ ਪਾਸ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਜਾਣ-ਬੁੱਝ ਕੇ ਬਿਲਟ-ਇਨ ਵਾਇਰਿੰਗ ਉੱਤੇ ਜਿੱਤਦੇ ਹਨ। ਹਰ ਕੈਟਾਲਾਗ ਪੰਨਾ ਕੰਪੋਨੈਂਟ ਦਾ ARIA ਇਕਰਾਰਨਾਮਾ ਦਸਤਾਵੇਜ਼ੀ ਕਰਦਾ ਹੈ।
theme-picker ਸਹਾਇਕ ਸਟਾਈਲਸ਼ੀਟਾਂ ਨਹੀਂ ਬਦਲਦਾ
ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ themesUrl ਉਸ ਡਾਇਰੈਕਟਰੀ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਲਿਆ ਸਕਦਾ ਹੈ ( themes/ ਫਾਈਲਾਂ ਨੂੰ ਸਟੈਟਿਕ ਸੰਪਤੀਆਂ ਵਜੋਂ ਸਰਵ ਕਰੋ) ਅਤੇ ਤੁਹਾਡੇ themes ਪ੍ਰੋਪ ਵਿੱਚ ਥੀਮ ਸਲੱਗ ਫਾਈਲ ਨਾਵਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ। ਸਹਾਇਕ ਬਦਲਦਾ ਹੈ href ਇੱਕ ਪ੍ਰਬੰਧਿਤ
<link data-lily-theme-picker> ਦਾ — ਮੰਗੇ ਜਾ ਰਹੇ URL ਨੂੰ ਵੇਖਣ ਲਈ ਇਸ ਨੂੰ devtools ਵਿੱਚ ਜਾਂਚੋ।
ਕੁਝ ਹੋਰ ਟੁੱਟਿਆ ਹੈ
ਘੱਟੋ-ਘੱਟ ਮੁੜ-ਉਤਪਾਦਨ ਨਾਲ ਇੱਥੇ issue ਖੋਲ੍ਹੋ github.com/LilyDesignSystem/lily-design-system — ਜਾਂ ਵੇਖੋ ਭਾਈਚਾਰਾ ਅਤੇ ਸਹਾਇਤਾ.
ਯੋਗਦਾਨ
Lily ਨੌਜਵਾਨ ਹੈ ਅਤੇ ਸਹਿਯੋਗ ਦਾ ਸਵਾਗਤ ਕਰਦਾ ਹੈ। ਇਸ ਸਮੇਂ ਸਭ ਤੋਂ ਲਾਭਦਾਇਕ ਯੋਗਦਾਨ ਇਹ ਹਨ:
- ਨਵੇਂ ਕੰਪੋਨੈਂਟ (ਖ਼ਾਸ ਕਰਕੇ ਸਥਾਪਿਤ ਡਿਜ਼ਾਈਨ ਸਿਸਟਮਾਂ ਦੇ ਪੈਟਰਨ)।
- ਨਵੇਂ ਥੀਮ — ਹਰ ਇੱਕ ਸਵੈ-ਸੰਪੂਰਨ ਸਟਾਈਲਸ਼ੀਟ ਹੈ, ਚੰਗੀ ਹੱਦਬੰਦੀ ਵਾਲਾ ਪਹਿਲਾ PR।
- ਬਿਹਤਰ ਉਦਾਹਰਨ ਸਟਾਈਲਿੰਗ — ਦਿਖਾਓ ਕੀ ਸੰਭਵ ਹੈ।
- ਉਦਾਹਰਨ ਐਪ ਸਟ੍ਰਿੰਗਾਂ ਦੇ ਅਨੁਵਾਦ।
- ਘੱਟੋ-ਘੱਟ ਮੁੜ-ਉਤਪਾਦਨ ਸਮੇਤ ਬੱਗ ਰਿਪੋਰਟਾਂ।
- ਸਕ੍ਰੀਨ ਰੀਡਰਾਂ ਅਤੇ ਸਹਾਇਕ ਤਕਨੀਕ ਨਾਲ ਪਹੁੰਚਯੋਗਤਾ ਆਡਿਟ।
ਇੱਥੇ issue ਅਤੇ PR ਖੋਲ੍ਹੋ github.com/LilyDesignSystem/lily-design-system.
ਭਾਈਚਾਰਾ ਅਤੇ ਸਹਾਇਤਾ
- ਸਵਾਲ ਅਤੇ ਬੱਗ ਰਿਪੋਰਟਾਂ — ਇੱਥੇ issue ਖੋਲ੍ਹੋ github.com/LilyDesignSystem/lily-design-system.
- ਈਮੇਲ — ਸੰਭਾਲਕਰਤਾ ਪੜ੍ਹਦਾ ਹੈ joel@joelparkerhenderson.com ਅਤੇ ਸਹਿਯੋਗ, ਮਾਰਗਦਰਸ਼ਨ ਅਤੇ ਫੀਡਬੈਕ ਦਾ ਸਵਾਗਤ ਕਰਦਾ ਹੈ।
- ਮਿਰਰ — Lily ਇਨ੍ਹਾਂ ਉੱਤੇ ਵੀ ਪੁਸ਼ ਕੀਤਾ ਜਾਂਦਾ ਹੈ Codeberg ਅਤੇ GitLab, ਤਾਂ ਜੋ ਤੁਸੀਂ ਆਪਣੇ ਪਸੰਦੀਦਾ ਫੋਰਜ ਤੋਂ ਹਿੱਸਾ ਲੈ ਸਕੋ।
- ਆਚਰਣ — ਪ੍ਰੋਜੈਕਟ ਇੱਕ ਮਿਆਰੀ ਆਚਰਣ ਸੰਹਿਤਾ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ; ਦਿਆਲੂ ਰਹੋ, ਨੇਕ ਨੀਅਤ ਮੰਨੋ।
FAQ
ਸਟਾਈਲ ਕੀਤੇ ਦੀ ਬਜਾਏ ਹੈੱਡਲੈੱਸ ਕਿਉਂ?
ਪਹਿਲਾਂ-ਸਟਾਈਲ ਕੀਤੇ ਕੰਪੋਨੈਂਟ ਸੁਵਿਧਾਜਨਕ ਹਨ — ਜਦੋਂ ਤੱਕ ਉਹ ਤੁਹਾਡੇ ਬ੍ਰਾਂਡ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ। ਹੈੱਡਲੈੱਸ ਕੰਪੋਨੈਂਟ ਸ਼ੁਰੂ ਵਿੱਚ ਥੋੜ੍ਹਾ ਵੱਧ ਕੰਮ ਮੰਗਦੇ ਹਨ ਪਰ ਵਿਜ਼ੂਅਲ ਡਿਜ਼ਾਈਨ ਉੱਤੇ ਪੂਰਾ ਨਿਯੰਤਰਣ ਦਿੰਦੇ ਹਨ। ਉਦਾਹਰਨ ਐਪਾਂ ਅਤੇ 57 ਥੀਮ ਇਨ੍ਹਾਂ ਨੂੰ ਸਟਾਈਲ ਕਰਨ ਦੇ ਤਰੀਕੇ ਦਿਖਾਉਂਦੇ ਹਨ; ਤੁਸੀਂ ਉਨ੍ਹਾਂ ਨੂੰ ਲੈ ਸਕਦੇ ਹੋ ਜਾਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬਦਲ ਸਕਦੇ ਹੋ। ਲੰਮੀ ਦਲੀਲ ਇੱਥੇ ਹੈ Lily ਕਿਉਂ.
ਇੰਨੇ ਸਾਰੇ ਕੰਪੋਨੈਂਟ ਕਿਉਂ?
Lily ਦਾ ਉਦੇਸ਼ ਉਹ ਪੈਟਰਨ ਕਵਰ ਕਰਨਾ ਹੈ ਜੋ ਜ਼ਿਆਦਾਤਰ ਐਪਾਂ ਨੂੰ ਚਾਹੀਦੇ ਹਨ, ਤੁਹਾਨੂੰ ਇਨ੍ਹਾਂ ਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਬਣਾਉਣ ਲਈ ਮਜਬੂਰ ਕੀਤੇ ਬਿਨਾਂ — ਰਾਸ਼ਟਰੀ ਪਛਾਣਕਰਤਾ ਇਨਪੁੱਟ ਅਤੇ ਸੰਪਾਦਕੀ scrollytelling ਵਰਗੀਆਂ ਡੂੰਘੀਆਂ ਚੀਜ਼ਾਂ ਸਮੇਤ। ਕੈਟਾਲਾਗ ਦਰਜਨ ਭਰ ਸਥਾਪਿਤ ਡਿਜ਼ਾਈਨ ਸਿਸਟਮਾਂ ਅਤੇ ਮੌਲਿਕ ਕੰਮ ਤੋਂ ਲੈਂਦਾ ਹੈ — ਵੇਖੋ ਬਾਰੇ.
ਕੀ ਮੈਂ Lily ਨੂੰ Tailwind ਨਾਲ ਵਰਤ ਸਕਦਾ ਹਾਂ?
ਹਾਂ। ਹਰ ਕੰਪੋਨੈਂਟ ਇੱਕ ਕਬਾਬ-ਕੇਸ ਰੂਟ ਕਲਾਸ ਅਤੇ ਖਪਤਕਾਰ-ਦਿੱਤਾ className / classਪ੍ਰਗਟ ਕਰਦਾ ਹੈ। Tailwind ਯੂਟਿਲਿਟੀਆਂ ਉੱਤੇ ਜਿਵੇਂ ਚਾਹੋ ਪਰਤ ਲਗਾਓ।
ਕੀ ਮੈਂ Lily ਨੂੰ DaisyUI ਵਰਗੇ ਸਿਮੈਂਟਿਕ CSS ਫ੍ਰੇਮਵਰਕਾਂ ਨਾਲ ਵਰਤ ਸਕਦਾ ਹਾਂ?
ਹਾਂ। ਰੂਟ ਐਲੀਮੈਂਟ ਉੱਤੇ ਕਬਾਬ-ਕੇਸ ਕਲਾਸ ਨਾਮ ਸਿਮੈਂਟਿਕ CSS ਹੁੱਕਾਂ ਵਜੋਂ ਕੰਮ ਕਰਦੇ ਹਨ। Lily ਨੂੰ ਸਿਮੈਂਟਿਕ ਫ੍ਰੇਮਵਰਕ ਨਾਲ ਜੋੜੋ ਅਤੇ ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ-ਸਟਾਈਲ ਕੀਤੇ ਕੰਪੋਨੈਂਟ ਮਿਲਦੇ ਹਨ ਜੋ ਫਿਰ ਵੀ ARIA ਅਤੇ i18n ਦਾ ਆਦਰ ਕਰਦੇ ਹਨ।
ਕੀ ਕੋਈ npm ਪੈਕੇਜ ਹੈ?
ਪਸੰਦ ਸਹਾਇਕ npm/NuGet ਪ੍ਰਕਾਸ਼ਨ ਪਾਈਪਲਾਈਨ ਵਾਲੇ ਪੈਕੇਜਾਂ ਵਜੋਂ ਆਉਂਦੇ ਹਨ। ਹੈੱਡਲੈੱਸ ਕੰਪੋਨੈਂਟ ਲਾਇਬ੍ਰੇਰੀਆਂ ਕਲੋਨ ਜਾਂ ਵੈਂਡਰ ਕਰਨ ਲਈ ਬਣਾਈਆਂ ਗਈਆਂ ਹਨ — ਸਰੋਤ ਹੀ ਡਿਲੀਵਰੇਬਲ ਹੈ, ਇਸ ਲਈ ਤੁਸੀਂ ਜੋ ਸ਼ਿਪ ਕਰਦੇ ਹੋ ਉਹ ਠੀਕ-ਠੀਕ ਪੜ੍ਹ, ਛਾਂਟ ਅਤੇ ਮਲਕੀਅਤ ਵਿੱਚ ਰੱਖ ਸਕਦੇ ਹੋ। ਹੈੱਡਲੈੱਸ ਲਾਇਬ੍ਰੇਰੀਆਂ ਲਈ ਰਜਿਸਟਰੀ ਪ੍ਰਕਾਸ਼ਨ ਰੋਡਮੈਪ ਉੱਤੇ ਬਣਿਆ ਹੋਇਆ ਹੈ।
ਬਹੁ-ਲਾਇਸੰਸ ਕਿਉਂ?
ਵੱਖ-ਵੱਖ ਪ੍ਰੋਜੈਕਟਾਂ ਦੀਆਂ ਲਾਇਸੰਸ ਲੋੜਾਂ ਵੱਖਰੀਆਂ ਹੁੰਦੀਆਂ ਹਨ। BSD ਅਤੇ MIT ਖੁੱਲ੍ਹੇ ਹਨ, Apache-2.0 ਵਿੱਚ ਪੇਟੈਂਟ ਗ੍ਰਾਂਟ ਹੈ, ਅਤੇ GPL ਵਿਕਲਪ ਕਾਪੀਲੈਫ਼ਟ ਦਾ ਸਮਰਥਨ ਕਰਦੇ ਹਨ। ਜੋ ਤੁਹਾਡੀ ਸਥਿਤੀ ਨੂੰ ਫਿੱਟ ਬੈਠੇ ਉਹ ਚੁਣੋ।
ਮੈਂ ਬੱਗ ਦੀ ਰਿਪੋਰਟ ਜਾਂ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਬੇਨਤੀ ਕਿਵੇਂ ਕਰਾਂ?
GitHub ਰਿਪੋਜ਼ਟਰੀ ਉੱਤੇ issue ਖੋਲ੍ਹੋ, ਜਾਂ ਈਮੇਲ ਕਰੋ joel@joelparkerhenderson.com.