一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
· 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
· 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
· 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
横向流程图每步写清页面/功能/操作/完成判据。
· 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
· 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
· 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。
二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。
三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
7.7 KiB
System projektowania inspirowany Duolingo
Category: Produktywność i SaaS Platforma do nauki języków. Jaskrawa zieleń sowy, grubaśne cienie, grywalizowana radość.
1. Motyw wizualny i atmosfera
Duolingo to grywalizacja jako język wizualny. Interfejs jest bezwstydnie jaskrawy, z zielenią sowy (#58cc02) jako głównym kolorem marki i grubym cieniem 4px u dołu każdego elementu interaktywnego, który wygląda jak przycisk 3D czekający na naciśnięcie. Strona jest biała (#ffffff) z grubymi obramowaniami 2–3px w ciemnej szarości (#e5e5e5), a cały system przypomina aplikację iOS z 2015 roku odrodzoną z lepszą hierarchią.
Typografia używa Feather Bold (niestandardowy zaokrąglony bezszeryfowy) dla chrome i Mona Sans (lub Inter) dla treści. Rozmiary wyświetlania są duże i pewne siebie — Duolingo nigdy nie szepcze. Nagłówki często noszą zielony podkreślony pociągnięcie lub siedzą na zielonej pigułce, a maskotka Duo (zielona sowa) pojawia się jako aktywna postać ilustracyjna, a nie statyczne logo.
Język kształtów jest przyjazny: promienie 16–20px na kartach, 12px na przyciskach, 9999px na chipach i paskach postępu. Ikonografia jest wypełniona, zaokrąglona i kodowana kolorami według umiejętności — każda powierzchnia lekcji ma natychmiast rozpoznawalną parę kolorów.
Kluczowe cechy:
- Zieleń sowy (
#58cc02) jako dominujący kolor marki, używany na ponad 30% powierzchni - Gruby cień dolny 4px na każdym przycisku (afordancja „dotykowego naciśnięcia")
- Solidne obramowania 2–3px, nigdy cienkie linie
- Feather Bold (zaokrąglony wyświetlacz) + Mona Sans (treść)
- Duży pewny tekst — rozmiary wyświetlania zaczynają się od 48px i rosną
- Maskotka jako postać: sowa Duo pojawia się podczas onboardingu, błędów, serii
- Pomarańcz serii (
#ff9600) i różowy klejnot (#ce82ff) jako drugorzędne kolory marki
2. Paleta kolorów i role
Podstawowe
- Zieleń sowy (
#58cc02): Główny kolor marki, podstawowe CTA, poprawna odpowiedź. - Głęboka zieleń sowy (
#58a700): Kolor naciśnięcia/cienia dla zielonych przycisków. - Jasna zieleń sowy (
#89e219): Najechanie, delikatne wypełnienia. - Blada zieleń sowy (
#dbf8c5): Delikatna powierzchnia, baner sukcesu.
Drugorzędne akcenty
- Pomarańcz serii (
#ff9600): Licznik serii, ikona ognia, energia premium. - Głęboka pomarańcz serii (
#cc7a00): Naciśnięta pomarańcz. - Różowy klejnot (
#ce82ff): Waluta klejnotów, Super Duolingo. - Niebieski węgorz (
#1cb0f6): Przycisk podpowiedzi, link informacyjny. - Czerwień kardynała (
#ff4b4b): Błędna odpowiedź, utrata życia. - Żółty pszczoły (
#ffc800): Odznaka pro, osiągnięcie.
Powierzchnia
- Śnieg (
#ffffff): Główne tło. - Węgorz (
#f7f7f7): Przerwa sekcji, drugorzędna powierzchnia. - Łabędź (
#e5e5e5): Wyłączone tło, blok wbudowany. - Wilk (
#777777): Ciemny separator, drugorzędny tekst.
Tusz i tekst
- Czarny węgorz (
#3c3c3c): Główny tekst. - Wilk (
#777777): Drugorzędny tekst, podpisy. - Zając (
#afafaf): Wyłączony, symbol zastępczy.
Obramowanie
- Łabędź (
#e5e5e5): Standardowe obramowanie 2px. - Zając (
#afafaf): Podkreślone obramowanie po najechaniu.
3. Zasady typografii
Rodzina czcionek
- Wyświetlacz / UI / Nagłówki:
Feather Bold, z rezerwą:'DIN Round Pro', 'Helvetica Neue', sans-serif - Treść / Długi tekst:
Mona Sans, z rezerwą:'Helvetica Neue', system-ui, sans-serif - Kod (rzadko, szkoły/admin):
JetBrains Mono, z rezerwą:ui-monospace, Menlo, monospace
Hierarchia
| Rola | Czcionka | Rozmiar | Grubość | Wysokość wiersza | Odstęp | Uwagi |
|---|---|---|---|---|---|---|
| Wyświetlacz | Feather Bold | 56px (3.5rem) | 800 | 1.05 | -0.01em | Bohater onboardingu |
| H1 | Feather Bold | 32px (2rem) | 800 | 1.15 | -0.005em | Tytuł strony |
| H2 | Feather Bold | 24px (1.5rem) | 800 | 1.2 | normal | Nagłówek sekcji |
| H3 | Feather Bold | 18px (1.125rem) | 700 | 1.25 | normal | Tytuł karty, wiersz lekcji |
| Duża treść | Mona Sans | 17px (1.0625rem) | 500 | 1.5 | normal | Podpowiedź lekcji, instrukcja |
| Treść | Mona Sans | 15px (0.9375rem) | 400 | 1.5 | normal | Standardowa proza |
| Podpis | Mona Sans | 13px (0.8125rem) | 600 | 1.4 | 0.01em | Licznik XP, metadane |
| Przycisk | Feather Bold | 16px (1rem) | 800 | 1.2 | 0.02em | Standardowa etykieta przycisku |
| Seria | Feather Bold | 14px (0.875rem) | 800 | 1.2 | normal | Numer serii, na płomieniu |
Zasady
- 800 to wartość domyślna: Feather Bold działa na 800 na nagłówkach i przyciskach. 700 wygląda słabo w tym systemie.
- Duży tekst: rozmiary nagłówków są 25–40% większe niż typowe marki produktów — pewność siebie jako tożsamość.
- Zaokrąglone kształty liter: każdy glif ma miękkie zakończenia; ostre szeryfowe złamałyby kontrakt przyjazności.
4. Stylizacja komponentów
Przyciski
Podstawowy (Zieleń sowy)
- Tło:
#58cc02 - Tekst:
#ffffff - Wypełnienie: 14px 24px
- Promień: 16px
- Border-bottom: 4px solid
#58a700(gruby cień) - Najechanie: tło
#89e219 - Aktywny: translate-y 4px, border-bottom 0 (przycisk „wciska się")
- Użycie: „Kontynuuj", „Sprawdź", główne CTA.
Drugorzędny (Biały z dolnym cieniem)
- Tło:
#ffffff - Tekst:
#777777 - Obramowanie: 2px solid
#e5e5e5 - Border-bottom: 4px solid
#e5e5e5 - Promień: 16px
- Wypełnienie: 14px 24px
- Najechanie: tekst
#3c3c3c, obramowanie#afafaf
Pomarańcz serii
- Tło:
#ff9600 - Tekst:
#ffffff - Border-bottom: 4px solid
#cc7a00 - Użycie: cel serii, „Rozpocznij serię"
Błąd (Czerwień kardynała)
- Tło:
#ff4b4b - Tekst:
#ffffff - Border-bottom: 4px solid
#cc3b3b - Użycie: informacja zwrotna o błędnej odpowiedzi.
Karty / Kafelki lekcji
- Tło:
#ffffff - Obramowanie: 2px solid
#e5e5e5 - Border-bottom: 4px solid
#e5e5e5 - Promień: 16px
- Wypełnienie: 16px
- Najechanie: unieść o 2px, cień
0 4px 0 #d7d7d7
Węzeł drzewa umiejętności (Bąbel lekcji)
- Rozmiar: 80×72px
- Tło: odcień koloru umiejętności (zielony dla aktywnego, szary dla zablokowanego)
- Border-bottom: 6px solid ciemniejszy wariant
- Promień: 50% (okrągły)
- Aktywny: pulsuje 1.0 → 1.05 co 1.6s
Pola wejściowe
- Tło:
#ffffff - Obramowanie: 2px solid
#e5e5e5 - Promień: 12px
- Wypełnienie: 12px 16px
- Focus: obramowanie
#1cb0f6(niebieski węgorz), pierścień0 0 0 3px rgba(28, 176, 246, 0.2)
Pasek postępu
- Tor:
#e5e5e5 - Wypełnienie:
#58cc02(lub#ff9600dla serii) - Promień: 9999px
- Wysokość: 16px
- Animowane wypełnienie: 320ms ease-out przy przyroście.
5. Odstępy i układ
- Jednostka podstawowa: 4px. Skala: 4, 8, 12, 16, 24, 32, 48, 64.
- Kontener: maks. 1080px, rynna 24px.
- Kolumna drzewa lekcji: 320px szerokości; wyśrodkowana na pulpicie.
6. Ruch
- Czas trwania: 180ms dla naciśnięcia przycisku; 320ms dla odblokowania węzła umiejętności; 1.6s dla pulsu aktywnego węzła.
- Easing:
cubic-bezier(0.34, 1.56, 0.64, 1)(back-out, lekkie przekroczenie) dla odblokowań. - Maskotka: Duo mruga co 4–6s, skacze przy kamieniach milowych serii (480ms ease-out sprężyna).
7. Wytyczne użytkowania
- Zachowaj razem mocno nasyconą zieleń sowy, grube dolne cienie i zaokrągloną geometrię lekcji; same płaskie zielone przyciski nie brzmią jak Duolingo.
- Zarezerwuj duży pogrubiony tekst dla momentów lekcji, serii i postępu, w których produkt potrzebuje zachęty lub informacji zwrotnej.
- Używaj żywiołowego ruchu oszczędnie przy zmianach stanu postępu, unikając generycznych odbijających się animacji na każdym kontrolce.