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

123 lines
27 KiB
Plaintext
Raw Normal View History

2026-01-18 10:35:27 +08:00
<EFBFBD>
<00><>hi<68>Q<00> <00><><00>dZddlZddlZddlmZddlmZmZdZddiddidd idd idd id
<EFBFBD>Z Gd <0B>d <0C>Z
d Z de de fd<10>Zde de fd<11>Zd%de de de de fd<16>Zedk(r<>ddlZej&d<18><19>Zej+dd<1A><1B>ej+dde dd<1E><1F>ej+d d!dd"gdd#<23>$<24>ej-<00>Zeej0ej2ej4<00>Zee<1B>yy)&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")
<EFBFBD>N)<01>Path)<02>search<63>DATA_DIRzui-reasoning.csv<73> max_results<74><00><00>)<05>product<63>style<6C>color<6F>landing<6E>
typographyc<00><><00>eZdZdZd<02>Zdefd<04>Zddededefd<08>Z d edefd
<EFBFBD>Z
d ed edefd <0C>Z d ededefd<0F>Z dedefd<11>Z ddededefd<13>Zy)<15>DesignSystemGeneratorzAGenerates design system recommendations from aggregated searches.c<00>.<00>|j<00>|_y<00>N)<02>_load_reasoning<6E>reasoning_data)<01>selfs <20>ID:\project\BrowserBookmark\.shared\ui-ux-pro-max\scripts\design_system.py<70>__init__zDesignSystemGenerator.__init__"s<00><00>"<22>2<>2<>4<><04><1B><00>returnc<00><><00>ttz }|j<00>sgSt|dd<02><03>5}t t j |<02><00>cddd<04>S#1swYyxYw)zLoad reasoning rules from CSV.<2E>rzutf-8)<01>encodingN)r<00>REASONING_FILE<4C>exists<74>open<65>list<73>csv<73>
DictReader)r<00>filepath<74>fs rrz%DesignSystemGenerator._load_reasoning%sF<00><00><1B>n<EFBFBD>,<2C><08><17><EFBFBD><EFBFBD> <20><15>I<EFBFBD> <11>(<28>C<EFBFBD>'<27> 2<>a<EFBFBD><17><03><0E><0E>q<EFBFBD>)<29>*<2A>3<> 2<> 2<>s <00>A<03>AN<>query<72>style_priorityc<00><><00>i}tj<00>D]R\}}|dk(r5|r3|rdj|dd<00>n|}|<01>d|<06><00>}t|||d<00>||<<00>@t|||d<00>||<<00>T|S)z)Execute searches across multiple domains.r <00> Nr r)<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_searchz*DesignSystemGenerator._multi_domain_search-s<><00><00><14><07>+<2B>1<>1<>3<>N<EFBFBD>F<EFBFBD>F<EFBFBD><15><17> <20>^<5E>AO<41><13><18><18>.<2E><12>!<21>*<<3C>!=<3D>UZ<55><0E>$)<29>7<EFBFBD>!<21>N<EFBFBD>+;<3B>!<<3C><0E>"(<28><1E><16><16> <0A>AV<41>"W<><07><06><0F>"(<28><15><06><06>}<7D>8M<38>"N<><07><06><0F>4<><17>r<00>categoryc<00><00><05>|j<00><00>|jD])}|jdd<02>j<00><00>k(s<01>'|cS|jD].}|jdd<02>j<00>}|<03>vs<05>|vs<01>,|cS|jD]j}|jdd<02>j<00>}|jdd<04>jdd<04>j <00>}t <00>fd<06>|D<00><00>s<01>h|cSiS)z,Find matching reasoning rule for a category.<2E> UI_Category<72><00>/r(<00>-c3<00>&<00>K<00>|]}|<01>v<00><01><00>
y<00>wr<00>)<03>.0<EFBFBD>kw<6B>category_lowers <20>r<00> <genexpr>z=DesignSystemGenerator._find_reasoning_rule.<locals>.<genexpr>Ms<00><><00><><00>;<3B>(<28>B<EFBFBD>2<EFBFBD><1E>'<27>(<28>s<00>)<06>lowerr<00>get<65>replace<63>split<69>any)rr2<00>rule<6C>ui_cat<61>keywordsr<s @r<00>_find_reasoning_rulez*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>;<3B>(<28>;<3B>;<3B><1B> <0B> (<28> <12> r<00>search_resultsc <00><00>|j|<01>}|s dddgddddidd <09>Si} tj|jd
d <0B><00>}|jd d<07>|jd d<07>j d<0E>D<00>cgc]}|j <00><00><02>c}|jdd<07>|jdd<07>|jdd<07>|jdd<07>||jdd<08>d <09>S#tj$rY<00><>wxYwcc}w)z(Apply reasoning rules to search results.<2E>Hero + Features + CTA<54>
Minimalismz Flat Design<67> Professional<61>CleanzSubtle hover transitionsr5<00>MEDIUM)<08>patternr&<00>
color_mood<EFBFBD>typography_mood<6F> key_effects<74> anti_patterns<6E>decision_rules<65>severity<74>Decision_Rulesz{}<7D>Recommended_Pattern<72>Style_Priority<74>+<2B>
Color_Mood<EFBFBD>Typography_Mood<6F> Key_Effects<74> Anti_Patterns<6E>Severity)rF<00>json<6F>loadsr?<00>JSONDecodeErrorrA<00>strip)rr2rGrCrS<00>ss r<00>_apply_reasoningz&DesignSystemGenerator._apply_reasoningRs<00><00><13>(<28>(<28><18>2<><04><13>2<>#/<2F><1D>"?<3F>,<2C>#*<2A>9<>!#<23>"$<24>$<24> <0E> <0E><1C><0E> <11>!<21>Z<EFBFBD>Z<EFBFBD><04><08><08>1A<31>4<EFBFBD>(H<>I<>N<EFBFBD>
<1C>x<EFBFBD>x<EFBFBD> 5<>r<EFBFBD>:<3A>26<32>(<28>(<28>;K<>R<EFBFBD>2P<32>2V<32>2V<32>WZ<57>2[<5B>\<5C>2[<5B>Q<EFBFBD>q<EFBFBD>w<EFBFBD>w<EFBFBD>y<EFBFBD>2[<5B>\<5C><1E>(<28>(<28><<3C><12>4<>#<23>x<EFBFBD>x<EFBFBD>(9<>2<EFBFBD>><3E><1F>8<EFBFBD>8<EFBFBD>M<EFBFBD>2<EFBFBD>6<>!<21>X<EFBFBD>X<EFBFBD>o<EFBFBD>r<EFBFBD>:<3A>,<2C><1C><08><08><1A>X<EFBFBD>6<> 
<EFBFBD>
<EFBFBD><EFBFBD><14>#<23>#<23> <11> <10> <11><>
]s<00>%C/<00>=D<06>/D<03>Dr,<00>priority_keywordsc<00><><00>|siS|s|dS|D]U}|j<00>j<00>}|D]0}|jdd<03>j<00>}||vs||vs<01>,|ccS<00>Wg}|D]<5D>}t|<05>j<00>}d} |D]z}
|
j<00>j<00>} | |jdd<03>j<00>vr| dz } <09>I| |jdd<03>j<00>vr| dz } <09>q| |vs<01>v| dz } <09>||j | |f<02><00><>|j d<08>d <09>
<EFBFBD>|r|dddkDr|ddS|dS) z7Select best matching result based on priority keywords.r<00>Style Categoryr5<00>
<00>Keywordsrrc<00> <00>|dS)Nrr9)<01>xs r<00><lambda>z:DesignSystemGenerator._select_best_match.<locals>.<lambda><3E>s<00><00>!<21>A<EFBFBD>$rT)<02>key<65>reverse)r>rar?<00>str<74>append<6E>sort) rr,rd<00>priority<74>priority_lower<65>result<6C>
style_name<EFBFBD>scored<65>
result_str<EFBFBD>scorer;<00>kw_lowers r<00>_select_best_matchz(DesignSystemGenerator._select_best_matchts^<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>Z<EFBFBD>/<2F>:<3A><1E>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>v<EFBFBD>z<EFBFBD>z<EFBFBD>*:<3A>B<EFBFBD>?<3F>E<>E<>G<>G<><19>R<EFBFBD>K<EFBFBD>E<EFBFBD><1D><16><1A><1A>J<EFBFBD><02>!;<3B>!A<>!A<>!C<>C<><19>Q<EFBFBD>J<EFBFBD>E<EFBFBD><1D><1A>+<2B><19>Q<EFBFBD>J<EFBFBD>E<EFBFBD>(<28> <13>M<EFBFBD>M<EFBFBD>5<EFBFBD>&<26>/<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>Jr<00> search_resultc<00>&<00>|jdg<00>S)z-Extract results list from search result dict.r,)r?)rrzs r<00>_extract_resultsz&DesignSystemGenerator._extract_results<74>s<00><00><1C> <20> <20><19>B<EFBFBD>/<2F>/r<00> project_namec<00><><00>t|dd<02>}|jdg<00>}d}|r|djdd<04>}|j|i<00>}|jdg<00>}|j||<07>}||d<|j |jdi<00><00>} |j |jd i<00><00>}
|j |jd
i<00><00>} |j |jd i<00><00>} |j | |jdg<00><00>} |
r|
dni}| r| dni}| r| dni}| jd d <0A>}|jdd <0A>}|r|n|}|xs|j <00>||jd|jdd<11><00>|jdd<13>|jdd<15>|jdd <0A>|jdd <0A>d<18>| jdd<1A>| jdd<04>|| jdd <0A>| jdd <0A>| jdd <0A>| jdd <0A>d <20>|jd!d"<22>|jd#d$<24>|jd%d&<26>|jd'd(<28>|jd)d*<2A>|jd+d <0A>d,<2C>|jd-d.<2E>|jd/d.<2E>|jd0|jd1d <0A><00>|jdd <0A>|jd2d <0A>|jd3d <0A>d4<64>||jd5d <0A>|jd6i<00>|jd7d8<64>d9<64>
S):z/Generate complete design system recommendation.r
rr,<00>Generalrz Product Typer&r r rr zEffects & Animationr5rQz Pattern NamerNrIz Section OrderzHero > Features > CTAzPrimary CTA Placementz
Above foldzColor StrategyzConversion Optimization)<05>name<6D>sections<6E> cta_placement<6E>color_strategy<67>
conversionrfrJ<00>TyperhzBest For<6F> Performance<63> Accessibility)r<><00>type<70>effectsrE<00>best_for<6F> performance<63> accessibilityz Primary (Hex)z#2563EBzSecondary (Hex)z#3B82F6z CTA (Hex)z#F97316zBackground (Hex)z#F8FAFCz
Text (Hex)z#1E293B<33>Notes)<06>primary<72> secondary<72>cta<74>
background<EFBFBD>text<78>notesz Heading Font<6E>Interz Body FontzMood/Style KeywordsrPzGoogle Fonts URLz
CSS Import)<06>heading<6E>body<64>moodr<64><00>google_fonts_url<72>
css_importrRrSrTrM)
r}r2rNr <00>colorsrrQrRrSrT)rr?rcr1r|ry<00>upper)rr%r}<00>product_result<6C>product_resultsr2<00> reasoningr&rG<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>generatezDesignSystemGenerator.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>.<2E>I<><0E>$2<><0E>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>I<EFBFBD>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>)<29>9<>E<EFBFBD>K<EFBFBD>K<EFBFBD>M<EFBFBD> <20>$<24>(<28>(<28><1E><19><1D><1D>y<EFBFBD>Ri<52>9j<39>k<>(<28>,<2C>,<2C>_<EFBFBD>>U<>V<>!-<2D>!1<>!1<>2I<32><<3C>!X<>".<2E>"2<>"2<>3C<33>R<EFBFBD>"H<>*<2A>.<2E>.<2E>/H<>"<22>M<> <0E>#<23><0E><0E>'7<><1C>F<>"<22><0E><0E>v<EFBFBD>y<EFBFBD>9<>(<28>&<26>N<EFBFBD>N<EFBFBD>:<3A>r<EFBFBD>:<3A>&<26>N<EFBFBD>N<EFBFBD>:<3A>r<EFBFBD>:<3A>)<29>~<7E>~<7E>m<EFBFBD>R<EFBFBD>@<40>!+<2B><1E><1E><0F><12>!D<><0E>&<26>><3E>><3E>/<2F>9<EFBFBD>E<>'<27>^<5E>^<5E>,=<3D>y<EFBFBD>I<>!<21>~<7E>~<7E>k<EFBFBD>9<EFBFBD>=<3D>(<28>n<EFBFBD>n<EFBFBD>-?<3F><19>K<>"<22><0E><0E>|<7C>Y<EFBFBD>?<3F>#<23><1E><1E><07><12>4<> <0E>+<2B>.<2E>.<2E>~<7E>w<EFBFBD>G<>'<27>+<2B>+<2B>K<EFBFBD><17>A<>'<27>+<2B>+<2B>,A<>9<EFBFBD>=<3D>=<3D>Qb<51>df<64>Cg<43>h<>+<2B>/<2F>/<2F>
<EFBFBD>B<EFBFBD>?<3F>$3<>$7<>$7<>8J<38>B<EFBFBD>$O<>-<2D>1<>1<>,<2C><02>C<> <0E>,<2C>&<26>]<5D>]<5D>?<3F>B<EFBFBD>?<3F>'<27>m<EFBFBD>m<EFBFBD>,<<3C>b<EFBFBD>A<>!<21> <0A> <0A>j<EFBFBD>(<28>;<3B>M'
<EFBFBD>'
rr)<0F>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rr rrn<00>dictr1rFrcryr|r<>r9rrrrs<><00><00>K<>5<>+<2B><14>+<2B> <17>#<23> <17>t<EFBFBD> <17>t<EFBFBD> <17><12>S<EFBFBD><12>T<EFBFBD><12>0 
<EFBFBD><13> 
<EFBFBD>d<EFBFBD> 
<EFBFBD>t<EFBFBD> 
<EFBFBD>D#K<01>$<24>#K<01>4<EFBFBD>#K<01>D<EFBFBD>#K<01>J0<>d<EFBFBD>0<>t<EFBFBD>0<>I
<EFBFBD>c<EFBFBD>I
<EFBFBD><13>I
<EFBFBD><04>I
rr<00>Z<00> design_systemrc <00><00>|jdd<02>}|jdi<00>}|jdi<00>}|jdi<00>}|jdi<00>}|jdd<08>}|jd d<08>}d
td td td tfd<0E>}|jdd<08>j d<10>} | D<00>
cgc]#}
|
j <00>s<01>|
j <00><00><02>%} }
g} t dz
} | jdd| zzdz<00>| jd|<01>d<15>jt <00>dz<00>| jdd| zzdz<00>| jddt zzdz<00>| jd|jdd<08><00><00>jt <00>dz<00>|jd<1A>r:| jd|jdd<08><00><00>jt <00>dz<00>|jd<1C>r:| jd|jdd<08><00><00>jt <00>dz<00>| jdjt <00>dz<00>t| d<11>D]2\} }| jd| <0A>d |<0E><00>jt <00>dz<00><00>4| jddt zzdz<00>| jd!|jdd<08><00><00>jt <00>dz<00>|jd"<22>rM|d#|jd"d<08><00><00>d$t <00>D])}| j|jt <00>dz<00><00>+|jd%<25>rM|d&|jd%d<08><00><00>d$t <00>D])}| j|jt <00>dz<00><00>+|jd'<27>s|jd(<28>rRd)|jd'd<08><00>d*|jd(d<08><00><00>}| jd$|<10><00>jt <00>dz<00>| jddt zzdz<00>| jd+jt <00>dz<00>| jd,|jd-d<08><00><00>jt <00>dz<00>| jd.|jd/d<08><00><00>jt <00>dz<00>| jd0|jd1d<08><00><00>jt <00>dz<00>| jd2|jd3d<08><00><00>jt <00>dz<00>| jd4|jd
d<08><00><00>jt <00>dz<00>|jd5<64>rM|d6|jd5d<08><00><00>d$t <00>D])}| j|jt <00>dz<00><00>+| jddt zzdz<00>| jd7|jd8d<08><00>d9|jd:d<08><00><00>jt <00>dz<00>|jd;<3B>rM|d<|jd;d<08><00><00>d$t <00>D])}| j|jt <00>dz<00><00>+|jd%<25>rM|d&|jd%d<08><00><00>d$t <00>D])}| j|jt <00>dz<00><00>+|jd=<3D>r:| jd>|jd=d<08><00><00>jt <00>dz<00>|jd?<3F>r>| jd@|jd?d<08>dAdB<00>dC<64>jt <00>dz<00>| jddt zzdz<00>|r| jdDjt <00>dz<00>||d$t <00>D])}| j|jt <00>dz<00><00>+| jddt zzdz<00>|r| jdEjt <00>dz<00>||d$t <00>D])}| j|jt <00>dz<00><00>+| jddt zzdz<00>| jdFjt <00>dz<00>gdG<64>}|D],}| jd$|<12><00>jt <00>dz<00><00>.| jddt zzdz<00>| jdd| zzdz<00>dHj| <0B>Scc}
w)Iz:Format design system as ASCII box with emojis (MCP-style).r}<00>PROJECTrNr r<>rrQr5rRr<><00>prefix<69>widthrc<00><00>|sgS|j<00>}g}|}|D]M}t|<05>t|<06>zdz|dz
kr|||k7rdnd|zz }<05>3||k7r|j|<05>||z}<05>O||k7r|j|<05>|S)z#Wrap long text into multiple lines.rr r(r5)rA<00>lenro)r<>r<>r<><00>words<64>lines<65> current_line<6E>words r<00> wrap_textz#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> <0C><06>(><3E><13>B<EFBFBD>$<24> N<>N<> <0C><1F>6<EFBFBD>)<29><19>L<EFBFBD>L<EFBFBD><1C>.<2E>%<25><04>}<7D> <0C> <1A> <18>6<EFBFBD> !<21> <11>L<EFBFBD>L<EFBFBD><1C> &<26><14> rr<><00>>rrXr7z | TARGET: z - RECOMMENDED DESIGN SYSTEM<45>|r(z | PATTERN: r<>r<>z| Conversion: r<>z | CTA: z| Sections:z| z. z
| STYLE: rEz
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<>zNotes: z| TYPOGRAPHY: r<>z / r<>r<>zMood: r<>z| Google Fonts: r<>z| CSS Import: N<>Fz...z| KEY EFFECTS:z| AVOID (Anti-patterns):z| PRE-DELIVERY CHECKLIST:)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<70>
) r?rn<00>intr rAra<00> BOX_WIDTHro<00>ljust<73> enumerater+)r<><00>projectrNr r<>rr<>rRr<>r<>rbr<><00>w<>i<>section<6F>line<6E> perf_a11y<31>checklist_items<6D>items r<00>format_ascii_boxr<78><00>sA<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><03><15>S<EFBFBD><15><13><15><14><15>&<17>{<7B>{<7B>:<3A>r<EFBFBD>*<2A>0<>0<><13>5<>H<EFBFBD>#+<2B>9<>8<EFBFBD>a<EFBFBD>q<EFBFBD>w<EFBFBD>w<EFBFBD>y<EFBFBD><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> <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> <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>7<EFBFBD> <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><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><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>5<EFBFBD>9<EFBFBD>9<EFBFBD>_<EFBFBD>#=<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><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><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><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> <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> <0A> <0C> <0C>)<29>*<2A>.<2E>.<2E><1C>r<EFBFBD>*J<>3<EFBFBD>B<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>e=<04>e=c <00> <00>|jdd<02>}|jdi<00>}|jdi<00>}|jdi<00>}|jdi<00>}|jdd<08>}|jd d<08>}g}|jd
|<01><00><02>|jd<08>|jd <0B>|jd |jd d<08><00><00><02>|jd<0E>r$|jd|jdd<08><00><00><02>|jd<10>r$|jd|jdd<08><00><00><02>|jd<12>r$|jd|jdd<08><00><00><02>|jd|jdd<08><00><00><02>|jd<08>|jd<16>|jd |jd d<08><00><00><02>|jd<17>r$|jd|jdd<08><00><00><02>|jd<19>r$|jd|jdd<08><00><00><02>|jd<1B>s|jd<1C>r7|jd|jdd<08><00>d|jdd<08><00><00><04>|jd<08>|jd<1F>|jd <20>|jd!<21>|jd"|jd#d<08><00>d$<24><03>|jd%|jd&d<08><00>d$<24><03>|jd'|jd(d<08><00>d$<24><03>|jd)|jd*d<08><00>d$<24><03>|jd+|jd,d<08><00>d$<24><03>|jd-<2D>r%|jd.|jd-d<08><00>d/<2F><03>|jd<08>|jd0<64>|jd1|jd2d<08><00><00><02>|jd3|jd4d<08><00><00><02>|jd5<64>r$|jd6|jd5d<08><00><00><02>|jd<19>r$|jd|jdd<08><00><00><02>|jd7<64>r$|jd8|jd7d<08><00><00><02>|jd9<64>rU|jd:<3A>|jd;<3B>|j|jd9d<08><00><00>|jd<<3C>|jd<08>|r4|jd=<3D>|j|<06><00>|jd<08>|rF|jd><3E>|jd?|jd@dA<64><00><00><02>|jd<08>|jdB<64>|jdC<64>|jdD<64>|jdE<64>|jdF<64>|jdG<64>|jdH<64>|jdI<64>|jd<08>dJj|<08>S)Kz!Format design system as markdown.r}r<>rNr r<>rrQr5rRz## Design System: z ### Patternz - **Name:** r<>r<>z- **Conversion Focus:** r<>z- **CTA Placement:** r<>z- **Color Strategy:** z- **Sections:** r<>z ### StylerEz- **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>)r?ror@r+) r<>r<>rNr r<>rr<>rRr<>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> <0A> <0C> <0C>/<2F><07> <0B> <0B>L<EFBFBD>"<22>0M<30>/N<>O<>P<><0E>{<7B>{<7B>?<3F>#<23> <0A> <0C> <0C>,<2C>W<EFBFBD>[<5B>[<5B><1F>"<22>-M<>,N<>O<>P<><0E>{<7B>{<7B>#<23>$<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> <0A> <0C> <0C>'<27><05> <09> <09>*<2A>b<EFBFBD>(A<>'B<>C<>D<> <0C>y<EFBFBD>y<EFBFBD><1A><1C> <0A> <0C> <0C>'<27><05> <09> <09>*<2A>b<EFBFBD>(A<>'B<>C<>D<> <0C>y<EFBFBD>y<EFBFBD><1D><1F>5<EFBFBD>9<EFBFBD>9<EFBFBD>_<EFBFBD>#=<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> <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> <0A> <0C> <0C>|<7C>J<EFBFBD>N<EFBFBD>N<EFBFBD>6<EFBFBD>2<EFBFBD>$><3E>#?<3F>@<40>A<><11>~<7E>~<7E>j<EFBFBD>!<21> <0A> <0C> <0C>'<27>
<EFBFBD><0E><0E>z<EFBFBD>2<EFBFBD>(F<>'G<>H<>I<><11>~<7E>~<7E>(<28>)<29> <0A> <0C> <0C>+<2B>J<EFBFBD>N<EFBFBD>N<EFBFBD>;M<>r<EFBFBD>,R<>+S<>T<>U<><11>~<7E>~<7E>l<EFBFBD>#<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>asciir%r}<00> output_formatc<00>p<00>t<00>}|j||<01>}|dk(r t|<04>St|<04>S)a7
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
<20>markdown)rr<>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>l<EFBFBD>;<3B>M<EFBFBD><14>
<EFBFBD>"<22><1E>}<7D>-<2D>-<2D> <1B>M<EFBFBD> *<2A>*r<00>__main__zGenerate Design System)<01> descriptionz%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!r^<00>pathlibr<00>corerrrr)rr<>r<>rnr<>r<>r<>r<><00>argparse<73>ArgumentParser<65>parser<65> add_argument<6E>
parse_args<EFBFBD>argsr%r}<00>formatrs<00>printr9rr<00><module>r<>sY<00><01><04> <0B> <0B><18>!<21>$<24><0E><1E>q<EFBFBD>!<21><1B>Q<EFBFBD> <1F><1B>Q<EFBFBD> <1F><1D>q<EFBFBD>!<21> <20>!<21>$<24> <02> <0A>G
<EFBFBD>G
<EFBFBD>V <0F> <09>z<1C>D<EFBFBD>z<1C>S<EFBFBD>z<1C>zZ<1C>4<EFBFBD>Z<1C>C<EFBFBD>Z<1C>|+<2B>#<23>+<2B>S<EFBFBD>+<2B>PS<50>+<2B>be<62>+<2B>* <0C>z<EFBFBD><19><13> $<24>X<EFBFBD> $<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