Files
Xu_BrowserBookmark/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc

142 lines
31 KiB
Plaintext
Raw Normal View History

+
<08>ii<69>Q<00> <00><><00>Rt^RIt^RIt^RIHt^RIHtHtRtRR^/RR^/RR^/R R^/R
R^//t !R R 4t
^Zt R Rlt RRlt R#RRllt]R8Xd<>^RIt]P"!RR7t]P'RRR7]P'RR]RRR7]P'RRRR .RR!R"7]P+4t]!]P.]P0]P24t]!]4R#R#)$a
Design System Generator - Aggregates search results and applies reasoning
to generate comprehensive design system recommendations.
Usage:
from design_system import generate_design_system
result = generate_design_system("SaaS dashboard", "My Project")
N)<01>Path)<02>search<63>DATA_DIRzui-reasoning.csv<73>product<63> max_results<74>style<6C>color<6F>landing<6E>
typographyc<00><>a<00>]tRt^toRtRtV3RlRltRV3RlRlltV3RlR ltV3R
lR lt V3R lR lt
V3RlRlt RV3RlRllt Rt VtR#)<14>DesignSystemGeneratorzAGenerates design system recommendations from aggregated searches.c<08>0<00>VP4VnR#<00>N)<02>_load_reasoning<6E>reasoning_data)<01>selfs&<26>~/Users/viettranx/Documents/coding/next-level-builder/ui-ux-pro-max-skill/.claude/skills/ui-ux-pro-max/scripts/design_system.py<70>__init__<5F>DesignSystemGenerator.__init__"s<00><00>"<22>2<>2<>4<><04><1B>c<00> <<01>V^8<>dQhRS[/#)<02><00>return)<01>list)<02>format<61> __classdict__s"<22>r<00> __annotate__<5F>"DesignSystemGenerator.__annotate__%s<00><><00>+<2B>+<2B><14>+rc <0C><><00>\\, pVP4'g.#\VRRR7;_uu_4p\ \
P !V44uuRRR4# +'giR#;i)zLoad reasoning rules from CSV.<2E>rzutf-8)<01>encodingN)r<00>REASONING_FILE<4C>exists<74>openr<00>csv<73>
DictReader)r<00>filepath<74>fs& rr<00>%DesignSystemGenerator._load_reasoning%sO<00><00><1B>n<EFBFBD>,<2C><08><17><EFBFBD><EFBFBD> <20> <20><15>I<EFBFBD> <11>(<28>C<EFBFBD>'<27> 2<> 2<>a<EFBFBD><17><03><0E><0E>q<EFBFBD>)<29>*<2A>3<> 2<> 2<> 2<>s <00>A*<05>* A; Nc<00>,<<01>V^8<>dQhRS[RS[RS[/#)r<00>query<72>style_priorityr)<03>strr<00>dict)rrs"<22>rrr-s"<00><><00> <17> <17>#<23> <17>t<EFBFBD> <17>t<EFBFBD> rc <0C> <00>/p\P4FiwrEVR8XdIV'dAV'dRPVR,4MTpV RV 2p\WtVR,4W4&KT\WVR,4W4&Kk V#)z)Execute searches across multiple domains.r<00> :NrNr)<04> SEARCH_CONFIG<49>items<6D>joinr)rr*r+<00>results<74>domain<69>config<69>priority_query<72>combined_querys&&& r<00>_multi_domain_search<63>*DesignSystemGenerator._multi_domain_search-s|<00><00><14><07>+<2B>1<>1<>3<>N<EFBFBD>F<EFBFBD><15><17> <20>^<5E>AO<41><13><18><18>.<2E><12>*<<3C>!=<3D>UZ<55><0E>$)<29>7<EFBFBD>!<21>N<EFBFBD>+;<3B>!<<3C><0E>"(<28><1E><16> <0A>AV<41>"W<><07><0F>"(<28><15><06>}<7D>8M<38>"N<><07><0F>4<><17>rc<00>&<<01>V^8<>dQhRS[RS[/#)r<00>categoryr<00>r,r-)rrs"<22>rrr:s<00><><00><12><12>S<EFBFBD><12>T<EFBFBD>rc <0C>xa<05>VP4oVPF,pVPRR4P4S8XgK*Vu# VPF5pVPRR4P4pVS9g
SV9gK3Vu# VPF<>pVPRR4P4pVPRR4PRR4P 4p\
;QJdV3RlV4F 'gK RM RM!V3RlV44'gK<>Vu# /#) z,Find matching reasoning rule for a category.<2E> UI_Category<72><00>/r/<00>-c3<00>,<"<00>TF qS9x<00>K R#5ir<00>)<03>.0<EFBFBD>kw<6B>category_lowers& <20>r<00> <genexpr><3E>=DesignSystemGenerator._find_reasoning_rule.<locals>.<genexpr>Ms<00><><00><00>;<3B>(<28>B<EFBFBD><1E>'<27>(<28>s<00>TF)<06>lowerr<00>get<65>replace<63>split<69>any)rr;<00>rule<6C>ui_cat<61>keywordsrFs&& @r<00>_find_reasoning_rule<6C>*DesignSystemGenerator._find_reasoning_rule:s<><00><><00>!<21><1E><1E>)<29><0E><19>'<27>'<27>D<EFBFBD><13>x<EFBFBD>x<EFBFBD> <0A>r<EFBFBD>*<2A>0<>0<>2<>n<EFBFBD>D<><1B> <0B>(<28>
<19>'<27>'<27>D<EFBFBD><19>X<EFBFBD>X<EFBFBD>m<EFBFBD>R<EFBFBD>0<>6<>6<>8<>F<EFBFBD><15><1E>'<27>><3E>V<EFBFBD>+C<><1B> <0B>(<28> <19>'<27>'<27>D<EFBFBD><19>X<EFBFBD>X<EFBFBD>m<EFBFBD>R<EFBFBD>0<>6<>6<>8<>F<EFBFBD><1D>~<7E>~<7E>c<EFBFBD>3<EFBFBD>/<2F>7<>7<><03>S<EFBFBD>A<>G<>G<>I<>H<EFBFBD><12>s<EFBFBD>;<3B>(<28>;<3B>s<EFBFBD>s<EFBFBD>s<EFBFBD>;<3B>(<28>;<3B>;<3B>;<3B><1B> <0B> (<28> <12> rc<00>,<<01>V^8<>dQhRS[RS[RS[/#)rr;<00>search_resultsrr<)rrs"<22>rrrRs"<00><><00> 
<EFBFBD> 
<EFBFBD><13> 
<EFBFBD>d<EFBFBD> 
<EFBFBD>t<EFBFBD> 
rc <0C>J<00>VPV4pV'gRRRRR.RRRR R
R R R R/RR/#/p\P!VPRR44pRVPRR 4RVPRR 4P R4Uu.uFqUP 4NK upRVPRR 4RVPRR 4R
VPRR 4R VPRR 4RVRVPRR4/# \PdL<>i;iuupi)z(Apply reasoning rules to search results.<2E>pattern<72>Hero + Features + CTAr+<00>
Minimalismz Flat Design<67>
color_mood<EFBFBD> Professional<61>typography_mood<6F>Clean<61> key_effectszSubtle hover transitions<6E> anti_patternsr?<00>decision_rules<65>severity<74>MEDIUM<55>Decision_Rulesz{}<7D>Recommended_Pattern<72>Style_Priority<74>+<2B>
Color_Mood<EFBFBD>Typography_Mood<6F> Key_Effects<74> Anti_Patterns<6E>Severity)rQ<00>json<6F>loadsrJ<00>JSONDecodeErrorrL<00>strip)rr;rTrNr_<00>ss&&& r<00>_apply_reasoning<6E>&DesignSystemGenerator._apply_reasoningRs8<00><00><13>(<28>(<28><18>2<><04><13><19>2<> <20><<3C><1D>"?<3F><1C>n<EFBFBD>!<21>7<EFBFBD><1D>9<><1F><12> <20>"<22><1A>H<EFBFBD> <0E> <0E><1C><0E> <11>!<21>Z<EFBFBD>Z<EFBFBD><04><08><08>1A<31>4<EFBFBD>(H<>I<>N<EFBFBD>
<16>t<EFBFBD>x<EFBFBD>x<EFBFBD> 5<>r<EFBFBD>:<3A> <1C>$<24>(<28>(<28>;K<>R<EFBFBD>2P<32>2V<32>2V<32>WZ<57>2[<5B>\<5C>2[<5B>Q<EFBFBD>w<EFBFBD>w<EFBFBD>y<EFBFBD>2[<5B>\<5C> <18>$<24>(<28>(<28><<3C><12>4<> <1D>t<EFBFBD>x<EFBFBD>x<EFBFBD>(9<>2<EFBFBD>><3E> <19>4<EFBFBD>8<EFBFBD>8<EFBFBD>M<EFBFBD>2<EFBFBD>6<> <1B>T<EFBFBD>X<EFBFBD>X<EFBFBD>o<EFBFBD>r<EFBFBD>:<3A> <1C>n<EFBFBD> <16><04><08><08><1A>X<EFBFBD>6<> 
<EFBFBD>
<EFBFBD><EFBFBD><14>#<23>#<23> <11> <10> <11><>
]s<00>&D<00> D
<EFBFBD>D<03>Dc<00>,<<01>V^8<>dQhRS[RS[RS[/#)rr3<00>priority_keywordsr)rr-)rrs"<22>rrrts'<00><><00>#K<01>#K<01>$<24>#K<01>4<EFBFBD>#K<01>D<EFBFBD>#Krc <0C>,<00>V'g/#V'g
V^,#VF\pVP4P4pVF5pVPRR4P4pWF9g Wd9gK1Vuu# K^ .pVF<>p\V4P4p^p VF<>p
V
P4P4p W<>PRR4P49d V ^
, p KPW<>PRR4P49d V ^, p KW<>9gK<>V ^, p K<> VP W<>34K<> VP RRR7V'd&V^,^,^8<>dV^,^,#V^,#)z7Select best matching result based on priority keywords.<2E>Style Categoryr?<00>Keywordsc<00><00>V^,#)<01>rC)<01>xs&r<00><lambda><3E>:DesignSystemGenerator._select_best_match.<locals>.<lambda><3E>s<00><00>!<21>A<EFBFBD>$rT)<02>key<65>reverse)rIrnrJr,<00>append<6E>sort) rr3rs<00>priority<74>priority_lower<65>result<6C>
style_name<EFBFBD>scored<65>
result_str<EFBFBD>scorerE<00>kw_lowers &&& r<00>_select_best_match<63>(DesignSystemGenerator._select_best_matchtsR<00><00><16><15>I<EFBFBD> <20><1A>1<EFBFBD>:<3A> <1D>*<2A>H<EFBFBD>%<25>^<5E>^<5E>-<2D>3<>3<>5<>N<EFBFBD>!<21><06>#<23>Z<EFBFBD>Z<EFBFBD>(8<>"<22>=<3D>C<>C<>E<>
<EFBFBD>!<21>/<2F>:<3A>3O<33>!<21>M<EFBFBD>"<22>*<2A><14><06><1D>F<EFBFBD><1C>V<EFBFBD><1B>*<2A>*<2A>,<2C>J<EFBFBD><15>E<EFBFBD>'<27><02><1D>8<EFBFBD>8<EFBFBD>:<3A>+<2B>+<2B>-<2D><08><1B>z<EFBFBD>z<EFBFBD>*:<3A>B<EFBFBD>?<3F>E<>E<>G<>G<><19>R<EFBFBD>K<EFBFBD>E<EFBFBD><1D><1A><1A>J<EFBFBD><02>!;<3B>!A<>!A<>!C<>C<><19>Q<EFBFBD>J<EFBFBD>E<EFBFBD><1D>+<2B><19>Q<EFBFBD>J<EFBFBD>E<EFBFBD>(<28> <13>M<EFBFBD>M<EFBFBD>5<EFBFBD>/<2F> *<2A><1E> <0F> <0B> <0B><0E><04> <0B>5<>%<25>&<26><11>)<29>A<EFBFBD>,<2C><11>*:<3A>v<EFBFBD>a<EFBFBD>y<EFBFBD><11>|<7C>J<><07><01>
<EFBFBD>Jrc<00>&<<01>V^8<>dQhRS[RS[/#)r<00> search_resultr)r-r)rrs"<22>rrr<00>s<00><><00>0<>0<>d<EFBFBD>0<>t<EFBFBD>0rc <0C>&<00>VPR.4#)z-Extract results list from search result dict.r3)rJ)rr<>s&&r<00>_extract_results<74>&DesignSystemGenerator._extract_results<74>s<00><00><1C> <20> <20><19>B<EFBFBD>/<2F>/rc<00>,<<01>V^8<>dQhRS[RS[RS[/#)rr*<00> project_namerr<)rrs"<22>rrr<00>s'<00><><00>I
<EFBFBD>I
<EFBFBD>c<EFBFBD>I
<EFBFBD><13>I
<EFBFBD><04>I
rc <0C>P<00>\VR^4pVPR.4pRpV'dV^,PRR4pVPV/4pVPR.4pVPW4pW8R&VP VPR/44p VP VPR/44p
VP VPR/44p VP VPR /44p VP W<>PR.44p V
'd
V
^,M/pV 'd
V ^,M/pV 'd
V ^,M/pV PR
R 4pVPR R 4pV'dTMTpR T;'gVP 4RVRRVPRVPRR44RVPRR4RVPRR4RVPRR 4RVPRR 4/RRV PRR4RV PR R4R!VR"V PR#R 4R$V PR%R 4R&V PR'R 4R(V PR)R 4/R*R+VPR,R-4R.VPR/R04R1VPR2R34R4VPR5R64R7VPR8R94R:VPR;R 4/RR<VPR=R>4R?VPR@R>4RAVPRBVPRCR 44R$VPR%R 4RDVPRER 4RFVPRGR 4/R VRHVPRHR 4RIVPRI/4RJVPRJRK4/
#)Lz/Generate complete design system recommendation.rr3<00>Generalz Product Typer+rrr
r zEffects & Animationr?r]r<>r;rV<00>namez Pattern NamerW<00>sectionsz Section OrderzHero > Features > CTA<54> cta_placementzPrimary CTA Placementz
Above fold<6C>color_strategyzColor Strategy<67>
conversionzConversion OptimizationrurX<00>type<70>Type<70>effectsrPrv<00>best_forzBest For<6F> performance<63> Performance<63> accessibility<74> Accessibility<74>colors<72>primaryz Primary (Hex)z#2563EB<45> secondaryzSecondary (Hex)z#3B82F6<46>ctaz CTA (Hex)z#F97316<31>
backgroundzBackground (Hex)z#F8FAFC<46>textz
Text (Hex)z#1E293B<33>notes<65>Notes<65>headingz Heading Font<6E>Inter<65>bodyz Body Font<6E>moodzMood/Style Keywordsr[<00>google_fonts_urlzGoogle Fonts URL<52>
css_importz
CSS Importr^r_r`ra)rrJrpr8r<>r<><00>upper)rr*r<><00>product_result<6C>product_resultsr;<00> reasoningr+rT<00> style_results<74> color_results<74>typography_results<74>landing_results<74>
best_style<EFBFBD>
best_color<EFBFBD>best_typography<68> best_landing<6E> style_effects<74>reasoning_effects<74>combined_effectss&&& r<00>generate<74>DesignSystemGenerator.generate<74>s<><00><00> <20><05>y<EFBFBD>!<21>4<><0E>(<28>,<2C>,<2C>Y<EFBFBD><02>;<3B><0F><1C><08> <1A>&<26>q<EFBFBD>)<29>-<2D>-<2D>n<EFBFBD>i<EFBFBD>H<>H<EFBFBD><19>)<29>)<29>(<28>B<EFBFBD>7<> <09>"<22><1D><1D>'7<><12><<3C><0E><1E>2<>2<>5<EFBFBD>I<><0E>$2<>y<EFBFBD>!<21><1D>-<2D>-<2D>n<EFBFBD>.@<40>.@<40><17>"<22>.M<>N<> <0A><1C>-<2D>-<2D>n<EFBFBD>.@<40>.@<40><17>"<22>.M<>N<> <0A>!<21>2<>2<>><3E>3E<33>3E<33>l<EFBFBD>TV<54>3W<33>X<><1A><1E>/<2F>/<2F><0E>0B<30>0B<30>9<EFBFBD>b<EFBFBD>0Q<30>R<><0F><19>,<2C>,<2C>]<5D>M<EFBFBD>M<EFBFBD>JZ<4A>\^<5E><_<>`<60>
<EFBFBD>)6<>]<5D>1<EFBFBD>%<25>B<EFBFBD>
<EFBFBD>3E<EFBFBD>,<2C>Q<EFBFBD>/<2F>2<EFBFBD><0F>-<<3C><EFBFBD>q<EFBFBD>)<29>"<22> <0C>#<23><0E><0E>'<<3C>b<EFBFBD>A<> <0A>%<25>M<EFBFBD>M<EFBFBD>-<2D><12><<3C><19>,9<>=<3D>?P<><18> <1B>L<EFBFBD>9<>9<>E<EFBFBD>K<EFBFBD>K<EFBFBD>M<EFBFBD> <16><08> <15><16> <0C>(<28>(<28><1E><19><1D><1D>y<EFBFBD>Ri<52>9j<39>k<><1A>L<EFBFBD>,<2C>,<2C>_<EFBFBD>>U<>V<><1F><1C>!1<>!1<>2I<32><<3C>!X<> <20>,<2C>"2<>"2<>3C<33>R<EFBFBD>"H<><1C>l<EFBFBD>.<2E>.<2E>/H<>"<22>M<> <0E> <14><16>
<EFBFBD><0E><0E>'7<><1C>F<><16>
<EFBFBD><0E><0E>v<EFBFBD>y<EFBFBD>9<><19>=<3D><1A>J<EFBFBD>N<EFBFBD>N<EFBFBD>:<3A>r<EFBFBD>:<3A><1A>J<EFBFBD>N<EFBFBD>N<EFBFBD>:<3A>r<EFBFBD>:<3A><1D>z<EFBFBD>~<7E>~<7E>m<EFBFBD>R<EFBFBD>@<40><1F><1A><1E><1E><0F><12>!D<><0E> <15><19>:<3A>><3E>><3E>/<2F>9<EFBFBD>E<><1B>Z<EFBFBD>^<5E>^<5E>,=<3D>y<EFBFBD>I<><15>z<EFBFBD>~<7E>~<7E>k<EFBFBD>9<EFBFBD>=<3D><1C>j<EFBFBD>n<EFBFBD>n<EFBFBD>-?<3F><19>K<><16>
<EFBFBD><0E><0E>|<7C>Y<EFBFBD>?<3F><17><1A><1E><1E><07><12>4<> <0E> <19><19>?<3F>.<2E>.<2E>~<7E>w<EFBFBD>G<><16><0F>+<2B>+<2B>K<EFBFBD><17>A<><16><0F>+<2B>+<2B>,A<>9<EFBFBD>=<3D>=<3D>Qb<51>df<64>Cg<43>h<><1A>O<EFBFBD>/<2F>/<2F>
<EFBFBD>B<EFBFBD>?<3F>"<22>O<EFBFBD>$7<>$7<>8J<38>B<EFBFBD>$O<><1C>o<EFBFBD>1<>1<>,<2C><02>C<> <0E> <1A>+<2B> <1B>Y<EFBFBD>]<5D>]<5D>?<3F>B<EFBFBD>?<3F> <1C>i<EFBFBD>m<EFBFBD>m<EFBFBD>,<<3C>b<EFBFBD>A<> <16> <09> <0A> <0A>j<EFBFBD>(<28>;<3B>M'
<EFBFBD>'
r)rr)<0F>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__rrr8rQrpr<>r<>r<><00>__static_attributes__<5F>__classdictcell__)rs@rr r s_<00><><00><00>K<>5<>+<2B>+<2B> <17> <17><12><12>0 
<EFBFBD> 
<EFBFBD>D#K<01>#K<01>J0<>0<>I
<EFBFBD>I
<EFBFBD>I
rr c<00>0<00>V^8<>dQhR\R\/#<00>r<00> design_systemr<00>r-r,)rs"rrr<00>s<00><00>z<1C>z<1C>D<EFBFBD>z<1C>S<EFBFBD>zrc <04><><00>VPRR4pVPR/4pVPR/4pVPR/4pVPR/4pVPRR4pVPR R4pR
R lpVPR R4PR 4p V U
u.uF*q<>P4'gKV
P4NK, p p
.p \^,
p V P RRV ,,R,4V P RV R2P \4R,4V P RRV ,,R,4V P RR\,,R,4V P RVPRR4 2P \4R,4VPR4'd?V P RVPRR4 2P \4R,4VPR4'd?V P RVPRR4 2P \4R,4V P RP \4R,4\ V ^4F6wr<>V P RV RV 2P \4R,4K8 V P RR\,,R,4V P RVPRR4 2P \4R,4VPR4'dTV!RVPRR4 2R \4F.pV P VP \4R,4K0 VPR!4'dTV!R"VPR!R4 2R \4F.pV P VP \4R,4K0 VPR#4'gVPR$4'dWR%VPR#R4 R&VPR$R4 2pV P R V 2P \4R,4V P RR\,,R,4V P R'P \4R,4V P R(VPR)R4 2P \4R,4V P R*VPR+R4 2P \4R,4V P R,VPR-R4 2P \4R,4V P R.VPR/R4 2P \4R,4V P R0VPR1R4 2P \4R,4VPR24'dTV!R3VPR2R4 2R \4F.pV P VP \4R,4K0 V P RR\,,R,4V P R4VPR5R4 R6VPR7R4 2P \4R,4VPR84'dTV!R9VPR8R4 2R \4F.pV P VP \4R,4K0 VPR!4'dTV!R"VPR!R4 2R \4F.pV P VP \4R,4K0 VPR:4'd?V P R;VPR:R4 2P \4R,4VPR<4'dGV P R=VPR<R4R>, R?2P \4R,4V P RR\,,R,4V'd<>V P R@P
i)Ez:Format design system as ASCII box with emojis (MCP-style).r<><00>PROJECTrVrr<>r
r]r?r^c<00>H<00>V^8<>dQhR\R\R\R\/#)rr<><00>prefix<69>widthr)r,<00>intr)rs"rr<00>&format_ascii_box.<locals>.__annotate__<5F>s(<00><00><15><15><03><15>S<EFBFBD><15><13><15><14>rc<04>P<00>V'g.#VP4p.pTpVFjp\V4\V4,^,V^,
8:dYUV8wdRMRV,, pKKWQ8wdVPV4W,pKl WQ8wdVPV4V#)z#Wrap long text into multiple lines.r/r?)rL<00>lenr~)r<>r<>r<><00>words<64>lines<65> current_line<6E>words&&& r<00> wrap_text<78>#format_ascii_box.<locals>.wrap_text<78>s<><00><00><13><15>I<EFBFBD><14>
<EFBFBD>
<EFBFBD> <0C><05><12><05><1D> <0C><19>D<EFBFBD><12><<3C> <20>3<EFBFBD>t<EFBFBD>9<EFBFBD>,<2C>q<EFBFBD>0<>E<EFBFBD>A<EFBFBD>I<EFBFBD>=<3D><1C><06>(><3E><13>B<EFBFBD>$<24> N<>N<> <0C><1F>)<29><19>L<EFBFBD>L<EFBFBD><1C>.<2E>%<25>}<7D> <0C> <1A> <18> !<21> <11>L<EFBFBD>L<EFBFBD><1C> &<26><14> rr<><00>>rerAz | TARGET: z - RECOMMENDED DESIGN SYSTEM<45>|r/z | PATTERN: r<>r<>z| Conversion: r<>z | CTA: z| Sections:z| z. z
| STYLE: rPz
Keywords: z| r<>z
Best For: r<>r<>z Performance: z | Accessibility: z
| COLORS:z| Primary: r<>z| Secondary: r<>z| CTA: r<>z| Background: r<>z| Text: r<>r<>zNotes: z| TYPOGRAPHY: r<>z / r<>r<>zMood: r<>z| Google Fonts: r<>z| CSS Import: :N<>FNz...z| KEY EFFECTS:z| AVOID (Anti-patterns):z| PRE-DELIVERY CHECKLIST:<3A>
)z2[ ] No emojis as icons (use SVG: Heroicons/Lucide)z,[ ] cursor-pointer on all clickable elementsz4[ ] Hover states with smooth transitions (150-300ms)z+[ ] Light mode: text contrast 4.5:1 minimumz)[ ] Focus states visible for keyboard navz$[ ] prefers-reduced-motion respectedz,[ ] Responsive: 375px, 768px, 1024px, 1440px)rJrLrn<00> BOX_WIDTHr~<00>ljust<73> enumerater2)r<><00>projectrVrr<>r
r<>r^r<>r<>ror<><00>w<>i<>section<6F>line<6E> perf_a11y<31>checklist_items<6D>items& r<00>format_ascii_boxr<78><00>sB<00><00><1B><1F><1F><0E> <09>:<3A>G<EFBFBD><1B><1F><1F> <09>2<EFBFBD>.<2E>G<EFBFBD> <19> <1D> <1D>g<EFBFBD>r<EFBFBD> *<2A>E<EFBFBD> <1A> <1E> <1E>x<EFBFBD><12> ,<2C>F<EFBFBD><1E>"<22>"<22><<3C><12>4<>J<EFBFBD><1B><1F><1F> <0A>r<EFBFBD>2<>G<EFBFBD>!<21>%<25>%<25>o<EFBFBD>r<EFBFBD>:<3A>M<EFBFBD><15>&<17>{<7B>{<7B>:<3A>r<EFBFBD>*<2A>0<>0<><13>5<>H<EFBFBD>#+<2B>9<>8<EFBFBD>a<EFBFBD>w<EFBFBD>w<EFBFBD>y<EFBFBD> <09><01><07><07> <09>8<EFBFBD>H<EFBFBD>9<> <0F>E<EFBFBD><11>A<EFBFBD> <0A>A<EFBFBD> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Q<EFBFBD>w<EFBFBD><1D><13>$<24>%<25> <09>L<EFBFBD>L<EFBFBD>;<3B>w<EFBFBD>i<EFBFBD>'C<>D<>J<>J<>9<EFBFBD>U<>X[<5B>[<5B>\<5C> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Q<EFBFBD>w<EFBFBD><1D><13>$<24>%<25> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Y<EFBFBD><EFBFBD>&<26><13>,<2C>-<2D>
<EFBFBD>L<EFBFBD>L<EFBFBD><<3C><07> <0B> <0B>F<EFBFBD>B<EFBFBD> 7<>8<>9<>?<3F>?<3F> <09>J<>S<EFBFBD>P<>Q<><0E>{<7B>{<7B><<3C> <20> <20> <0A> <0C> <0C>)<29>'<27>+<2B>+<2B>l<EFBFBD>B<EFBFBD>*G<>)H<>I<>O<>O<>PY<50>Z<>]`<60>`<60>a<><0E>{<7B>{<7B>?<3F>#<23>#<23> <0A> <0C> <0C>{<7B>7<EFBFBD>;<3B>;<3B><EFBFBD><02>#C<>"D<>E<>K<>K<>I<EFBFBD>V<>Y\<5C>\<5C>]<5D> <09>L<EFBFBD>L<EFBFBD>"<22>(<28>(<28><19>3<>c<EFBFBD>9<>:<3A><1F><08>!<21>,<2C>
<EFBFBD><01> <0A> <0C> <0C>x<EFBFBD><01>s<EFBFBD>"<22>W<EFBFBD>I<EFBFBD>.<2E>4<>4<>Y<EFBFBD>?<3F>#<23>E<>F<>-<2D> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Y<EFBFBD><EFBFBD>&<26><13>,<2C>-<2D>
<EFBFBD>L<EFBFBD>L<EFBFBD>:<3A>e<EFBFBD>i<EFBFBD>i<EFBFBD><06><02>3<>4<>5<>;<3B>;<3B>I<EFBFBD>F<><13>L<>M<> <0C>y<EFBFBD>y<EFBFBD><1A><1C><1C><1D>
<EFBFBD>5<EFBFBD>9<EFBFBD>9<EFBFBD>Z<EFBFBD><12>+D<>*E<>F<><08>R[<5B>\<5C>D<EFBFBD> <11>L<EFBFBD>L<EFBFBD><14><1A><1A>I<EFBFBD>.<2E><13>4<> 5<>]<01> <0C>y<EFBFBD>y<EFBFBD><1A><1C><1C><1D>
<EFBFBD>5<EFBFBD>9<EFBFBD>9<EFBFBD>Z<EFBFBD><12>+D<>*E<>F<><08>R[<5B>\<5C>D<EFBFBD> <11>L<EFBFBD>L<EFBFBD><14><1A><1A>I<EFBFBD>.<2E><13>4<> 5<>]<01> <0C>y<EFBFBD>y<EFBFBD><1D><1F><1F>5<EFBFBD>9<EFBFBD>9<EFBFBD>_<EFBFBD>#=<3D>#=<3D>#<23>E<EFBFBD>I<EFBFBD>I<EFBFBD>m<EFBFBD>R<EFBFBD>$@<40>#A<>AS<41>TY<54>T]<5D>T]<5D>^m<>oq<6F>Tr<54>Ss<53>t<> <09> <0A> <0C> <0C>v<EFBFBD>i<EFBFBD>[<5B>)<29>/<2F>/<2F> <09>:<3A>S<EFBFBD>@<40>A<> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Y<EFBFBD><EFBFBD>&<26><13>,<2C>-<2D>
<EFBFBD>L<EFBFBD>L<EFBFBD><1C>#<23>#<23>I<EFBFBD>.<2E><13>4<>5<> <09>L<EFBFBD>L<EFBFBD>%<25>f<EFBFBD>j<EFBFBD>j<EFBFBD><19>B<EFBFBD>&?<3F>%@<40>A<>G<>G<> <09>R<>UX<55>X<>Y<> <09>L<EFBFBD>L<EFBFBD>%<25>f<EFBFBD>j<EFBFBD>j<EFBFBD><1B>b<EFBFBD>&A<>%B<>C<>I<>I<>)<29>T<>WZ<57>Z<>[<5B> <09>L<EFBFBD>L<EFBFBD>%<25>f<EFBFBD>j<EFBFBD>j<EFBFBD><15><02>&;<3B>%<<3C>=<3D>C<>C<>I<EFBFBD>N<>QT<51>T<>U<> <09>L<EFBFBD>L<EFBFBD>%<25>f<EFBFBD>j<EFBFBD>j<EFBFBD><1C>r<EFBFBD>&B<>%C<>D<>J<>J<>9<EFBFBD>U<>X[<5B>[<5B>\<5C> <09>L<EFBFBD>L<EFBFBD>%<25>f<EFBFBD>j<EFBFBD>j<EFBFBD><16><12>&<<3C>%=<3D>><3E>D<>D<>Y<EFBFBD>O<>RU<52>U<>V<> <0A>z<EFBFBD>z<EFBFBD>'<27><1A><1A><1D><07><06>
<EFBFBD>
<EFBFBD>7<EFBFBD>B<EFBFBD>(?<3F>'@<40>A<>8<EFBFBD>Y<EFBFBD>W<>D<EFBFBD> <11>L<EFBFBD>L<EFBFBD><14><1A><1A>I<EFBFBD>.<2E><13>4<> 5<>X<01> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Y<EFBFBD><EFBFBD>&<26><13>,<2C>-<2D>
<EFBFBD>L<EFBFBD>L<EFBFBD>?<3F>:<3A>><3E>><3E>)<29>R<EFBFBD>#@<40>"A<><13>Z<EFBFBD>^<5E>^<5E>TZ<54>\^<5E>E_<45>D`<60>a<>g<>g<>hq<68>r<>ux<75>x<>y<><11>~<7E>~<7E>f<EFBFBD><1D><1D><1D><06>z<EFBFBD>~<7E>~<7E>f<EFBFBD>b<EFBFBD>'A<>&B<>C<>X<EFBFBD>y<EFBFBD>Y<>D<EFBFBD> <11>L<EFBFBD>L<EFBFBD><14><1A><1A>I<EFBFBD>.<2E><13>4<> 5<>Z<01><11>~<7E>~<7E>j<EFBFBD>!<21>!<21><1D>
<EFBFBD>:<3A>><3E>><3E>*<2A>b<EFBFBD>+I<>*J<>K<>X<EFBFBD>W`<60>a<>D<EFBFBD> <11>L<EFBFBD>L<EFBFBD><14><1A><1A>I<EFBFBD>.<2E><13>4<> 5<>b<01><11>~<7E>~<7E>(<28>)<29>)<29> <0A> <0C> <0C>+<2B>J<EFBFBD>N<EFBFBD>N<EFBFBD>;M<>r<EFBFBD>,R<>+S<>T<>Z<>Z<>[d<>e<>hk<68>k<>l<><11>~<7E>~<7E>l<EFBFBD>#<23>#<23> <0A> <0C> <0C>)<29>*<2A>.<2E>.<2E><1C>r<EFBFBD>*J<>3<EFBFBD>*O<>)P<>PS<50>T<>Z<>Z<>[d<>e<>hk<68>k<>l<> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Y<EFBFBD><EFBFBD>&<26><13>,<2C>-<2D><0F> <0A> <0C> <0C>&<26>,<2C>,<2C>Y<EFBFBD>7<>#<23>=<3D>><3E><1D>g<EFBFBD>x<EFBFBD><19>;<3B>D<EFBFBD> <11>L<EFBFBD>L<EFBFBD><14><1A><1A>I<EFBFBD>.<2E><13>4<> 5<><<3C> <0A> <0C> <0C>S<EFBFBD>3<EFBFBD><19>?<3F>*<2A>S<EFBFBD>0<>1<><15> <0A> <0C> <0C>0<>6<>6<>y<EFBFBD>A<>C<EFBFBD>G<>H<><1D>m<EFBFBD>X<EFBFBD>y<EFBFBD>A<>D<EFBFBD> <11>L<EFBFBD>L<EFBFBD><14><1A><1A>I<EFBFBD>.<2E><13>4<> 5<>B<01> <0A> <0C> <0C>S<EFBFBD>3<EFBFBD><19>?<3F>*<2A>S<EFBFBD>0<>1<>
<EFBFBD>L<EFBFBD>L<EFBFBD>-<2D>3<>3<>I<EFBFBD>><3E><13>D<>E<><06>O<EFBFBD> <20><04> <0A> <0C> <0C>v<EFBFBD>d<EFBFBD>V<EFBFBD>_<EFBFBD>*<2A>*<2A>9<EFBFBD>5<><03>;<3B><<3C> <20> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Y<EFBFBD><EFBFBD>&<26><13>,<2C>-<2D> <09>L<EFBFBD>L<EFBFBD><13>s<EFBFBD>Q<EFBFBD>w<EFBFBD><1D><13>$<24>%<25> <0F>9<EFBFBD>9<EFBFBD>U<EFBFBD> <1B><1B><>y:s <00>*k
<04>k
c<00>0<00>V^8<>dQhR\R\/#r<>r<>)rs"rrris<00><00>Z<1C>Z<1C>4<EFBFBD>Z<1C>C<EFBFBD>Zrc <04><> <00>VPRR4pVPR/4pVPR/4pVPR/4pVPR/4pVPRR4pVPR R4p.pVPR
V 24VPR4VPR 4VPR VPR R4 24VPR4'd%VPRVPRR4 24VPR4'd%VPRVPRR4 24VPR4'd%VPRVPRR4 24VPRVPRR4 24VPR4VPR4VPR VPR R4 24VPR4'd%VPRVPRR4 24VPR4'd%VPRVPRR4 24VPR4'gVPR4'd8VPRVPRR4 RVPRR4 24VPR4VPR4VPR 4VPR!4VPR"VPR#R4 R$24VPR%VPR&R4 R$24VPR'VPR(R4 R$24VPR)VPR*R4 R$24VPR+VPR,R4 R$24VPR-4'd&VPR.VPR-R4 R/24VPR4VPR04VPR1VPR2R4 24VPR3VPR4R4 24VPR54'd%VPR6VPR5R4 24VPR4'd%VPRVPRR4 24VPR74'd%VPR8VPR7R4 24VPR94'dVVPR:4VPR;4VPVPR9R4 4VPR<4VPR4V'd5VPR=4VPV 4VPR4V'dGVPR>4VPR?VPR@RA4 24VPR4VPRB4VPRC4VPRD4VPRE4VPRF4VPRG4VPRH4VPRI4VPR4RJPV4#)Kz!Format design system as markdown.r<>r<>rVrr<>r
r]r?r^z## Design System: z ### Patternz - **Name:** r<>r<>z- **Conversion Focus:** r<>z- **CTA Placement:** r<>z- **Color Strategy:** z- **Sections:** r<>z ### StylerPz- **Keywords:** r<>z- **Best For:** r<>r<>z- **Performance:** z | **Accessibility:** z
### Colorsz| Role | Hex |z|------|-----|z | Primary | r<>z |z| Secondary | r<>z| CTA | r<>z| Background | r<>z | Text | r<>r<>z
*Notes: <20>*z### Typographyz- **Heading:** r<>z - **Body:** r<>r<>z - **Mood:** r<>z- **Google Fonts:** r<>z- **CSS Import:**z```cssz```z### Key Effectsz### Avoid (Anti-patterns)z- z + z
- z### Pre-Delivery Checklistz4- [ ] No emojis as icons (use SVG: Heroicons/Lucide)z.- [ ] cursor-pointer on all clickable elementsz6- [ ] Hover states with smooth transitions (150-300ms)z-- [ ] Light mode: text contrast 4.5:1 minimumz+- [ ] Focus states visible for keyboard navz&- [ ] prefers-reduced-motion respectedz.- [ ] Responsive: 375px, 768px, 1024px, 1440pxr<78>)rJr~rKr2) r<>r<>rVrr<>r
r<>r^r<>s & r<00>format_markdownr<6E>is<><00><00><1B><1F><1F><0E> <09>:<3A>G<EFBFBD><1B><1F><1F> <09>2<EFBFBD>.<2E>G<EFBFBD> <19> <1D> <1D>g<EFBFBD>r<EFBFBD> *<2A>E<EFBFBD> <1A> <1E> <1E>x<EFBFBD><12> ,<2C>F<EFBFBD><1E>"<22>"<22><<3C><12>4<>J<EFBFBD><1B><1F><1F> <0A>r<EFBFBD>2<>G<EFBFBD>!<21>%<25>%<25>o<EFBFBD>r<EFBFBD>:<3A>M<EFBFBD> <0E>E<EFBFBD> <09>L<EFBFBD>L<EFBFBD>%<25>g<EFBFBD>Y<EFBFBD>/<2F>0<> <09>L<EFBFBD>L<EFBFBD><12><14>
<EFBFBD>L<EFBFBD>L<EFBFBD><1D><1F> <09>L<EFBFBD>L<EFBFBD><<3C><07> <0B> <0B>F<EFBFBD>B<EFBFBD> 7<>8<>9<>:<3A><0E>{<7B>{<7B><<3C> <20> <20> <0A> <0C> <0C>/<2F><07> <0B> <0B>L<EFBFBD>"<22>0M<30>/N<>O<>P<><0E>{<7B>{<7B>?<3F>#<23>#<23> <0A> <0C> <0C>,<2C>W<EFBFBD>[<5B>[<5B><1F>"<22>-M<>,N<>O<>P<><0E>{<7B>{<7B>#<23>$<24>$<24> <0A> <0C> <0C>-<2D>g<EFBFBD>k<EFBFBD>k<EFBFBD>:J<>B<EFBFBD>.O<>-P<>Q<>R<> <09>L<EFBFBD>L<EFBFBD>#<23>G<EFBFBD>K<EFBFBD>K<EFBFBD>
<EFBFBD>B<EFBFBD>$?<3F>#@<40>A<>B<> <09>L<EFBFBD>L<EFBFBD><12><14>
<EFBFBD>L<EFBFBD>L<EFBFBD><1B><1D> <09>L<EFBFBD>L<EFBFBD><<3C><05> <09> <09>&<26>"<22> 5<>6<>7<>8<> <0C>y<EFBFBD>y<EFBFBD><1A><1C><1C> <0A> <0C> <0C>'<27><05> <09> <09>*<2A>b<EFBFBD>(A<>'B<>C<>D<> <0C>y<EFBFBD>y<EFBFBD><1A><1C><1C> <0A> <0C> <0C>'<27><05> <09> <09>*<2A>b<EFBFBD>(A<>'B<>C<>D<> <0C>y<EFBFBD>y<EFBFBD><1D><1F><1F>5<EFBFBD>9<EFBFBD>9<EFBFBD>_<EFBFBD>#=<3D>#=<3D> <0A> <0C> <0C>*<2A>5<EFBFBD>9<EFBFBD>9<EFBFBD>]<5D>B<EFBFBD>+G<>*H<>H^<5E>_d<5F>_h<5F>_h<5F>ix<69>z|<7C>_}<7D>^~<7E><> A<02> <09>L<EFBFBD>L<EFBFBD><12><14>
<EFBFBD>L<EFBFBD>L<EFBFBD><1C><1E> <09>L<EFBFBD>L<EFBFBD>><3E>#<23> <09>L<EFBFBD>L<EFBFBD>><3E>#<23> <09>L<EFBFBD>L<EFBFBD><<3C><06>
<EFBFBD>
<EFBFBD>9<EFBFBD>b<EFBFBD> 9<>:<3A>"<22>=<3D>><3E> <09>L<EFBFBD>L<EFBFBD>><3E>&<26>*<2A>*<2A>[<5B>"<22>"=<3D>!><3E>b<EFBFBD>A<>B<> <09>L<EFBFBD>L<EFBFBD>8<EFBFBD>F<EFBFBD>J<EFBFBD>J<EFBFBD>u<EFBFBD>b<EFBFBD>1<>2<>"<22>5<>6<> <09>L<EFBFBD>L<EFBFBD>?<3F>6<EFBFBD>:<3A>:<3A>l<EFBFBD>B<EFBFBD>#?<3F>"@<40><02>C<>D<> <09>L<EFBFBD>L<EFBFBD>9<EFBFBD>V<EFBFBD>Z<EFBFBD>Z<EFBFBD><06><02>3<>4<>B<EFBFBD>7<>8<> <0A>z<EFBFBD>z<EFBFBD>'<27><1A><1A> <0A> <0C> <0C>z<EFBFBD>&<26>*<2A>*<2A>W<EFBFBD>b<EFBFBD>"9<>!:<3A>!<21><<3C>=<3D> <09>L<EFBFBD>L<EFBFBD><12><14>
<EFBFBD>L<EFBFBD>L<EFBFBD>!<21>"<22> <09>L<EFBFBD>L<EFBFBD>?<3F>:<3A>><3E>><3E>)<29>R<EFBFBD>#@<40>"A<>B<>C<> <09>L<EFBFBD>L<EFBFBD><<3C>
<EFBFBD><0E><0E>v<EFBFBD>r<EFBFBD> :<3A>;<3B><<3C>=<3D><11>~<7E>~<7E>f<EFBFBD><1D><1D> <0A> <0C> <0C>|<7C>J<EFBFBD>N<EFBFBD>N<EFBFBD>6<EFBFBD>2<EFBFBD>$><3E>#?<3F>@<40>A<><11>~<7E>~<7E>j<EFBFBD>!<21>!<21> <0A> <0C> <0C>'<27>
<EFBFBD><0E><0E>z<EFBFBD>2<EFBFBD>(F<>'G<>H<>I<><11>~<7E>~<7E>(<28>)<29>)<29> <0A> <0C> <0C>+<2B>J<EFBFBD>N<EFBFBD>N<EFBFBD>;M<>r<EFBFBD>,R<>+S<>T<>U<><11>~<7E>~<7E>l<EFBFBD>#<23>#<23> <0A> <0C> <0C>(<28>*<2A> <0A> <0C> <0C>v<EFBFBD><1F> <0A> <0C> <0C>
<EFBFBD><0E><0E>|<7C>R<EFBFBD>8<>9<>;<3B> <0A> <0C> <0C>s<EFBFBD><1C> <09>L<EFBFBD>L<EFBFBD><12><14><0F> <0A> <0C> <0C>&<26>'<27> <0A> <0C> <0C><07>y<EFBFBD>"<22> <0A> <0C> <0C>R<EFBFBD><18><15> <0A> <0C> <0C>0<>1<> <0A> <0C> <0C>r<EFBFBD>-<2D>/<2F>/<2F><05>v<EFBFBD>><3E>?<3F>@<40>A<> <0A> <0C> <0C>R<EFBFBD><18>
<EFBFBD>L<EFBFBD>L<EFBFBD>-<2D>.<2E> <09>L<EFBFBD>L<EFBFBD>G<>H<> <09>L<EFBFBD>L<EFBFBD>A<>B<> <09>L<EFBFBD>L<EFBFBD>I<>J<> <09>L<EFBFBD>L<EFBFBD>@<40>A<> <09>L<EFBFBD>L<EFBFBD>><3E>?<3F> <09>L<EFBFBD>L<EFBFBD>9<>:<3A> <09>L<EFBFBD>L<EFBFBD>A<>B<> <09>L<EFBFBD>L<EFBFBD><12><14> <0F>9<EFBFBD>9<EFBFBD>U<EFBFBD> <1B>r<00>asciic<00>H<00>V^8<>dQhR\R\R\R\/#)rr*r<><00> output_formatr)r,)rs"rrr<00>s*<00><00>+<2B>+<2B>#<23>+<2B>S<EFBFBD>+<2B>PS<50>+<2B>be<62>+rc<04>r<00>\4pVPW4pVR8Xd \V4#\V4#)a
Main entry point for design system generation.
Args:
query: Search query (e.g., "SaaS dashboard", "e-commerce luxury")
project_name: Optional project name for output header
output_format: "ascii" (default) or "markdown"
Returns:
Formatted design system string
<EFBFBD>markdown)r r<>r<>r<>)r*r<>r<><00> generatorr<72>s&&& r<00>generate_design_systemr<6D><00>s:<00><00>&<26>'<27>I<EFBFBD><1D>&<26>&<26>u<EFBFBD>;<3B>M<EFBFBD><14>
<EFBFBD>"<22><1E>}<7D>-<2D>-<2D> <1B>M<EFBFBD> *<2A>*r<00>__main__zGenerate Design System)<01> descriptionr*z%Search query (e.g., 'SaaS dashboard'))<01>helpz--project-namez-pz Project name)r<><00>defaultr<74>z--formatz-fr<66>z Output format)<03>choicesr<73>r<>)Nr<4E>)r<>r$rk<00>pathlibr<00>corerrr!r0r r<>r<>r<>r<>r<><00>argparse<73>ArgumentParser<65>parser<65> add_argumentr,<00>
parse_args<EFBFBD>argsr*r<>rr<><00>printrCrr<00><module>rs#<00><01><04> <0B> <0B><18>!<21>$<24><0E><0E> <0A>q<EFBFBD>!<21> <0B>m<EFBFBD>Q<EFBFBD> <1F> <0B>m<EFBFBD>Q<EFBFBD> <1F> <0A> <0A>q<EFBFBD>!<21><10>=<3D>!<21>$<24> <02> <0A>G
<EFBFBD>G
<EFBFBD>V <0F> <09>z<1C>zZ<1C>|+<2B>* <0C>z<EFBFBD><19><13> <15> $<24> $<24>1I<31> J<>F<EFBFBD>
<EFBFBD><17><17><07>&M<><17>N<>
<EFBFBD><17><17>(<28>$<24>S<EFBFBD>$<24>^<5E><17>\<5C>
<EFBFBD><17><17>
<EFBFBD>D<EFBFBD>7<EFBFBD>J<EFBFBD>2G<EFBFBD>QX<EFBFBD>_n<EFBFBD><17>o<> <11> <1C> <1C> <1E>D<EFBFBD> #<23>D<EFBFBD>J<EFBFBD>J<EFBFBD><04>0A<30>0A<30>4<EFBFBD>;<3B>;<3B> O<>F<EFBFBD> <09>&<26>M<EFBFBD>r