uh, I'm heretotalktodayabout I actuallyregretnameofmytalk, littlebitadvanceddesignsystemsconsiderations, mostlybecauseit's a mouthful.
Butalso, I mean, advancedlesslike, uh, advancedmathandmorelikeadvancedosteoarthritisorsomething, right?
Huh?
I wanttotalkaboutwhattheworkisonceyouconvinceeveryoneatyourcompanytouseyourdesignsystem.
Andonceyou'redonebuildingoutallthenamebrandcomponents s o, I work, it's stripeonourdesignsystem.
Teamweretwodesignerstoengineersand a managerfor a totaloffivepeople.
And I justfoundoutfromWikipedia.
I promisethisistrue.
Thatstripeisover 2000 employeesnow, sothat's a heckof a ratioof 1 to 5.
That's thegoal, right?
Fordesignsystems, theirleveragededicatedteamoffourindividualcontributorscanabstractandmaintainthedesignlanguageandtechnicalimplementationfor a componentlibraryfor 2000 people.
Nowthey'regoing.
It's good.
It's I think, uh, I thinkitdoes a goodjob.
Uhuh.
It's notmagic, despite, uh, mymostsincereefforts.
Thatwas a greattalk, bytheway, uh, wethinkwecreatemorevaluethanweremove.
I believeinourgoals.
And I thinkmycoworkersandteammatesonthisteamaresomeofthemostthoughtfulandcapablepeopletobeworkingonthisprobleminexistence.
Uh, sowe'vedoneniftyworkonaccessiblecolorsystems, applying a lotofmagic, uh, choosingoneandwemadebuildingconsistentstrikelookinginterfaceis a littlebiteasier, andwehavesomeoranotherversionofjustabouteverycomponentthatyoucanthinkofoftentoourdetriment.
Youcanspendanincredibleamountoftimesoftlytacklinganissue, onlytozoomout, zoomoutagain, justtoseethatyou'reworkingin a tinysubsectionof a tinysubsectionofyourdesignsystem.
Andthatideareallysumsup a lotoftheworkthat's involvedinthesecondandthirdwavesthereneedtobeputinto a designsystem.
Youworkonsellingpeopletouseitversusrollingtheirowncomponentsaredoingoneoffdesignsandyouactivelyseekrealestateinyourapplicationstoseewhatyoucanreplacewith a cleanerdesignsystem.
Youfighttomakesureyoudon't becometoodated, butforthemostpart, it a stagewhereyourgoalstoblendintotheplatform.
Oneofmyfavorite 2019 goalsonmyteamthatstripewasthatanotherteamwouldannounce a conversionoftheirapplicationtoourdesignsystemwithoutthankingusattheendoftheemail.
Ourgoalwastobecomepartoftheexpectedplatformratherthananexcitingtoolthatpeoplehavetothink a lotabout.
Thesameispoor, thoughit's provide a systemthatitusedtoyourvalues.
SotheresultingyouguysheretoyourvaluesReallycommondesignsystemthing I seesometimesevenattachedtoegoalsforyourbusinessmetricsorsomethingisthedesiretoaddcomponentsinperpetuity.
The 37 hastheseurges, but I'd recommendyouworkthesethingsoutorgetorganizationallyratherthandeclaringmanifestdestinyonotherteams.
Technicaldebt.
Youlikeyourdesignsystem, or, intheend, I wanttodigbackintoThefirstpoint I broughtupthere, though, isthiscommonperceptionofdesignsystemsthatthey'reintendedtoincreaseefficiency?
I don't thinkthisisentirelywrong, but I thinkefficiencyis a secondarygoalof a designsystem.
Theprimarygoalof a designsystem, inmyopinion, istoupholdyourvaluesdesignsystemsairsoyoucanensurethatwhen a developerismakingtradeoffstoshipsomethingbeforeloomingdeadline, thatthatthingfallsoffthechoppingblock, thatthethingthatfallsoutthechoppingblockisn't accessibilityperformanceorvisualconsistencyorallattentiontodetaildesignsystemsairtoolstoupholdthequalityofyourproduct, eveninthefaceofconsumingteamsthataren't payingparticularattentiontoqualitydesignsystems.
Successfulwhensomeonecanthrowtogether a quick, a quickapplicationandwhy, whilethatapplicationmayfailtoachievethespecificbusinessschools, it's stillupholdsthevaluesthatareotherwiseleftbehindincrunchtime.
It's verycommontoendupwith a lotofsimilarcomponentsthatoftendoalmostthesamethingonmaybeevendescribe, thecontextthatthey'reusedinicon, but a NikonactionIconmenuiconareseeminglyicons.
Ah, it's alsocommontorecognizethiscomplexityandthenmoveeverythingoverinto a singlecomponentonandyouendupwithkindoflikeanexplosionofpropsthatalldosomethingveryspecificonLee.
Foroneusecase, youcan't alwaysavoidoneofthesetraps, butwewanttomovein a directionthattriestoallowthecontextdictatethedifferenceisnot a bunchofproblems s solet's seeifwecancontextuallycreate a buttonicon, whichistheoneatthetopthere, withoutactuallyneeding a componentlikethat.
Um, weadd a propdirectlytobuttontodeclarethetypeoftheiconwouldlikeittocontainiconequalsgear.
Youcanimagineitputs a gearintotheicon, Butthenwerecognizethatinordertochangeanythingabouttheicon, we'd actuallyneedtoduplicateallthepropsfromicononthebutton s O.
Butlike I saidsadly, iconsare 14 pixelsbydefaultandtheiconsinsideof a button 12 pixelsbydefault, wecouldmake a rulethatsaysalldevelopersmustremembertochangethesizeto 12 whentheyputaniconinthebutton.
Butweallknowhowwellthatwouldgo.
Um, ourcomplexityofoursystemisleakingout.
Wehave a dependencybetweenbuttoniconsthatwe'renotdescribingwell, soratherthanrequiredeachdevelopertorememberthisontheirown, wecouldmake a newcomponentthat's mostlyanicon, maybeevenwrapsaniconbutsetsthebuttondefaultsinsteadoftheregularicondefaults.
Inthiscase, being 12 picksis, butwe'rebacktobutton.
Frombeforewehadtototallydisparateatomiccomponentsandjusttryingtomakethe I countsize 12 pixelsinsideof a buttoncauseistocreate a dependencyinoneorbothdirections, whichissuperrough.
Um, it's a greatpatternforinternationalizationbecausemyroughadviceonand I do a lotofworkwithinternationalizationisthatyourapplicationalreadyhastosolveinternationalizationproblems.
Youwanttoavoidcreating a parallelinternationalizationsystemthat's usedintheapplication.
Thisis, uh, goodforperformanceandjustcleanliness.
It's not a hugeleaptosaythatinsteadofrenderinginternationalizedTexas a defaultlabeledforyourbutton, thatyou'd useapproachthatwe'vebeendiscussingtoallowapplicationstooverridethefourmatterstomatchonesthattheyaretouse, um, thekeyto a wellinternationalizeddesignsystemisreallyjustbeing a highlycomposeherbaldesignsystemthatgivescontroloverto a wellinternationalizedapplication.
You'rejustgeneratingandtransformingtheconfigurationfor a futurecomponent, thenyouhavetoturnyourChildrenstatepropsattributesinto a renderedcomponent.
Eso.
Nearlyallcomponentscouldbedescribedas a setofmodifiersinsteadofasuniquecomponents, andthatmeansyourdesignsystemcomponentscouldbedescribedoutsidetheboundsof a single U I framework.
Itmeanswecanwrite a renderandreactto.
Italsomeanswecouldwrite a render, insultorview, orevensomethinglike a sketchorfigment.
Pluginautomaticallygetourcomponentsinto a designtoolfromcoat.
Thisis a powerfulidea.
There's still a bunchofworktowrite.
Theserendersitsnot a panacea.
Andsomethingslike a datepickersofarbeen a littletoointeractivetogetinthismagicframeworkagnosticway.
Morethananything, though, a gooddesignsystemprioritizesupholdingvaluesovereverythingelsefacilitatestheincreasedlikelihoodthatapplicationsarebuiltwithit.
Alsosharethosesamevalues.
uh, I'm heretotalktodayabout I actuallyregretnameofmytalk, littlebitadvanceddesignsystemsconsiderations, mostlybecauseit's a mouthful.
Subtitles and vocabulary
Click the word to look it upClick the word to find further inforamtion about it