angular-material.scss 135 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910
  1. // Function
  2. //-- Must be defined before variables
  3. @function rem($multiplier) {
  4. $font-size: 10px;
  5. @return $multiplier * $font-size;
  6. }
  7. // Typography
  8. // ------------------------------
  9. $font-family: Roboto, 'Helvetica Neue', sans-serif !default;
  10. $font-size: 10px;
  11. $display-4-font-size-base: rem(11.20) !default;
  12. $display-3-font-size-base: rem(5.600) !default;
  13. $display-2-font-size-base: rem(4.500) !default;
  14. $display-1-font-size-base: rem(3.400) !default;
  15. $headline-font-size-base: rem(2.400) !default;
  16. $title-font-size-base: rem(2.000) !default;
  17. $subhead-font-size-base: rem(1.600) !default;
  18. $body-font-size-base: rem(1.400) !default;
  19. $caption-font-size-base: rem(1.200) !default;
  20. // Layout
  21. // ------------------------------
  22. $baseline-grid: 8px !default;
  23. $layout-breakpoint-sm: 600px !default;
  24. $layout-breakpoint-md: 960px !default;
  25. $layout-breakpoint-lg: 1200px !default;
  26. $layout-gutter-width: ($baseline-grid * 2) !default;
  27. // App bar variables
  28. $app-bar-height: 64px;
  29. $toast-height: $baseline-grid * 3 !default;
  30. $toast-margin: $baseline-grid * 1 !default;
  31. // Whiteframes
  32. $shadow-key-umbra-opacity: 0.2;
  33. $shadow-key-penumbra-opacity: 0.14;
  34. $shadow-ambient-shadow-opacity: 0.12;
  35. // NOTE(shyndman): gulp-sass seems to be failing if I split the shadow defs across
  36. // multiple lines. Ugly. Sorry.
  37. $whiteframe-shadow-1dp: 0px 1px 3px 0px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 1px 1px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 2px 1px -1px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  38. $whiteframe-shadow-2dp: 0px 1px 5px 0px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 2px 2px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 3px 1px -2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  39. $whiteframe-shadow-3dp: 0px 1px 8px 0px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 3px 4px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 3px 3px -2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  40. $whiteframe-shadow-4dp: 0px 2px 4px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 4px 5px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 1px 10px 0px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  41. $whiteframe-shadow-5dp: 0px 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 5px 8px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 1px 14px 0px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  42. $whiteframe-shadow-6dp: 0px 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 6px 10px 0px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 1px 18px 0px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  43. $whiteframe-shadow-7dp: 0px 4px 5px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 7px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 2px 16px 1px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  44. $whiteframe-shadow-8dp: 0px 5px 5px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 8px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 3px 14px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  45. $whiteframe-shadow-9dp: 0px 5px 6px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 9px 12px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 3px 16px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  46. $whiteframe-shadow-10dp: 0px 6px 6px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 10px 14px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 4px 18px 3px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  47. $whiteframe-shadow-11dp: 0px 6px 7px -4px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 11px 15px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 4px 20px 3px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  48. $whiteframe-shadow-12dp: 0px 7px 8px -4px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 12px 17px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 5px 22px 4px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  49. $whiteframe-shadow-13dp: 0px 7px 8px -4px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 13px 19px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 5px 24px 4px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  50. $whiteframe-shadow-14dp: 0px 7px 9px -4px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 14px 21px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 5px 26px 4px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  51. $whiteframe-shadow-15dp: 0px 8px 9px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 15px 22px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 6px 28px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  52. $whiteframe-shadow-16dp: 0px 8px 10px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 16px 24px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 6px 30px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  53. $whiteframe-shadow-17dp: 0px 8px 11px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 17px 26px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 6px 32px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  54. $whiteframe-shadow-18dp: 0px 9px 11px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 18px 28px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 7px 34px 6px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  55. $whiteframe-shadow-19dp: 0px 9px 12px -6px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 19px 29px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 7px 36px 6px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  56. $whiteframe-shadow-20dp: 0px 10px 13px -6px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 20px 31px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 8px 38px 7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  57. $whiteframe-shadow-21dp: 0px 10px 13px -6px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 21px 33px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 8px 40px 7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  58. $whiteframe-shadow-22dp: 0px 10px 14px -6px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 22px 35px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 8px 42px 7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  59. $whiteframe-shadow-23dp: 0px 11px 14px -7px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 23px 36px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 9px 44px 8px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  60. $whiteframe-shadow-24dp: 0px 11px 15px -7px rgba(0, 0, 0, $shadow-key-umbra-opacity), 0px 24px 38px 3px rgba(0, 0, 0, $shadow-key-penumbra-opacity), 0px 9px 46px 8px rgba(0, 0, 0, $shadow-ambient-shadow-opacity) !default;
  61. // Z-indexes
  62. //--------------------------------------------
  63. $z-index-tooltip: 100 !default;
  64. $z-index-menu: 99 !default;
  65. $z-index-select: 99 !default;
  66. $z-index-dialog: 80 !default;
  67. $z-index-toast: 90 !default;
  68. $z-index-bottom-sheet: 70 !default;
  69. $z-index-scroll-mask: 65 !default;
  70. $z-index-sidenav: 60 !default;
  71. $z-index-backdrop: 50 !default;
  72. $z-index-fab: 20 !default;
  73. // Easing Curves
  74. //--------------------------------------------
  75. $swift-ease-out-duration: 0.4s !default;
  76. $swift-ease-out-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;
  77. $swift-ease-out: all $swift-ease-out-duration $swift-ease-out-timing-function !default;
  78. $swift-ease-in-duration: 0.3s !default;
  79. $swift-ease-in-timing-function: cubic-bezier(0.55, 0, 0.55, 0.2) !default;
  80. $swift-ease-in: all $swift-ease-in-duration $swift-ease-in-timing-function !default;
  81. $swift-ease-in-out-duration: 0.5s !default;
  82. $swift-ease-in-out-timing-function: cubic-bezier(0.35, 0, 0.25, 1) !default;
  83. $swift-ease-in-out: all $swift-ease-in-out-duration $swift-ease-in-out-timing-function !default;
  84. $swift-linear-duration: 0.08s !default;
  85. $swift-linear-timing-function: linear !default;
  86. $swift-linear: all $swift-linear-duration $swift-linear-timing-function !default;
  87. // Fab Buttons (shared between buttons.scss and fab*.scss)
  88. // -------------------------------------------
  89. $button-fab-width: rem(5.600) !default;
  90. $button-fab-height: rem(5.600) !default;
  91. $button-fab-padding: rem(1.60) !default;
  92. @mixin margin-selectors($before:1em, $after:1em, $start:0px, $end:0px) {
  93. -webkit-margin-before: $before;
  94. -webkit-margin-after: $after;
  95. -webkit-margin-start: $start;
  96. -webkit-margin-end: $end;
  97. }
  98. @mixin not-selectable($value:none) {
  99. -webkit-touch-callout: $value;
  100. -webkit-user-select: $value;
  101. -khtml-user-select: $value;
  102. -moz-user-select: $value;
  103. -ms-user-select: $value;
  104. user-select: $value;
  105. }
  106. @mixin input-placeholder-color($color) {
  107. &::-webkit-input-placeholder,
  108. &::-moz-placeholder,
  109. &:-moz-placeholder,
  110. &:-ms-input-placeholder {
  111. color: $color;
  112. }
  113. }
  114. @mixin pie-clearfix {
  115. &:after {
  116. content: '';
  117. display: table;
  118. clear: both;
  119. }
  120. }
  121. @mixin md-shadow-bottom-z-1() {
  122. box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
  123. }
  124. @mixin md-shadow-bottom-z-2() {
  125. box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4);
  126. }
  127. // Mixin for a "flat" input that can be used for components that contain an input
  128. // (datepicker, autocomplete).
  129. @mixin md-flat-input() {
  130. font-size: 14px;
  131. box-sizing: border-box;
  132. border: none;
  133. box-shadow: none;
  134. outline: none;
  135. background: transparent;
  136. // The the "clear X" that IE adds to input[type="search"]
  137. &::-ms-clear {
  138. display: none;
  139. }
  140. }
  141. // Typography mixins
  142. @mixin md-title() {
  143. font-size: $title-font-size-base;
  144. font-weight: 500;
  145. letter-spacing: 0.005em;
  146. }
  147. @mixin md-body-1() {
  148. font-size: $body-font-size-base;
  149. font-weight: 400;
  150. letter-spacing: 0.010em;
  151. line-height: rem(2);
  152. }
  153. @mixin md-body-2() {
  154. font-size: $body-font-size-base;
  155. font-weight: 500;
  156. letter-spacing: 0.010em;
  157. line-height: rem(2.4);
  158. }
  159. @mixin md-subhead() {
  160. font-size: $subhead-font-size-base;
  161. font-weight: 400;
  162. letter-spacing: 0.010em;
  163. line-height: rem(2.4);
  164. }
  165. @function map-to-string($map) {
  166. $map-str: '{';
  167. $keys: map-keys($map);
  168. $len: length($keys);
  169. @for $i from 1 through $len {
  170. $key: nth($keys, $i);
  171. $value: map-get($map, $key);
  172. $map-str: $map-str + '_' + $key + '_: _' + map-get($map, $key) + '_';
  173. @if $i != $len {
  174. $map-str: $map-str + ',';
  175. }
  176. }
  177. @return $map-str + '}';
  178. }
  179. // mixin definition ; sets LTR and RTL within the same style call
  180. // @see https://css-tricks.com/almanac/properties/d/direction/
  181. @mixin rtl($prop, $value, $rtl-value) {
  182. #{$prop}: $value;
  183. html[dir=rtl] & {
  184. #{$prop}: $rtl-value;
  185. unicode-bidi: embed;
  186. }
  187. body[dir=rtl] & {
  188. #{$prop}: $rtl-value;
  189. unicode-bidi: embed;
  190. }
  191. bdo[dir=rtl] {
  192. direction: rtl;
  193. unicode-bidi: bidi-override;
  194. }
  195. bdo[dir=ltr] {
  196. direction: ltr;
  197. unicode-bidi: bidi-override;
  198. }
  199. }
  200. // Position a FAB button.
  201. @mixin fab-position($spot, $top: auto, $right: auto, $bottom: auto, $left: auto) {
  202. &.md-fab-#{$spot} {
  203. top: $top;
  204. right: $right;
  205. bottom: $bottom;
  206. left: $left;
  207. position: absolute;
  208. }
  209. }
  210. @mixin fab-all-positions() {
  211. @include fab-position(bottom-right, auto, ($button-fab-width - $button-fab-padding)/2, ($button-fab-height - $button-fab-padding)/2, auto);
  212. @include fab-position(bottom-left, auto, auto, ($button-fab-height - $button-fab-padding)/2, ($button-fab-width - $button-fab-padding)/2);
  213. @include fab-position(top-right, ($button-fab-height - $button-fab-padding)/2, ($button-fab-width - $button-fab-padding)/2, auto, auto);
  214. @include fab-position(top-left, ($button-fab-height - $button-fab-padding)/2, auto, auto, ($button-fab-width - $button-fab-padding)/2);
  215. }
  216. html, body {
  217. height: 100%;
  218. color: rgba(0,0,0,0.87);
  219. background: white;
  220. position: relative;
  221. }
  222. body {
  223. margin: 0;
  224. padding: 0;
  225. }
  226. [tabindex='-1']:focus {
  227. outline: none;
  228. }
  229. .inset {
  230. padding: 10px;
  231. }
  232. button.md-no-style {
  233. font-weight: normal;
  234. background-color: inherit;
  235. text-align: left;
  236. border: none;
  237. padding: 0;
  238. margin: 0;
  239. }
  240. select,
  241. button,
  242. textarea,
  243. input {
  244. vertical-align: baseline;
  245. }
  246. // Fix Android 4.0 button bugs
  247. input[type="reset"],
  248. input[type="submit"],
  249. html input[type="button"],
  250. button {
  251. cursor: pointer;
  252. -webkit-appearance: button;
  253. &[disabled] {
  254. cursor: default;
  255. }
  256. }
  257. textarea {
  258. vertical-align: top;
  259. overflow: auto;
  260. }
  261. input {
  262. &[type="search"] {
  263. -webkit-appearance: textfield;
  264. box-sizing: content-box;
  265. -webkit-box-sizing: content-box;
  266. &::-webkit-search-decoration,
  267. &::-webkit-search-cancel-button {
  268. -webkit-appearance: none;
  269. }
  270. }
  271. }
  272. .md-visually-hidden {
  273. border: 0;
  274. clip: rect(0 0 0 0);
  275. height: 1px;
  276. margin: -1px;
  277. overflow: hidden;
  278. padding: 0;
  279. position: absolute;
  280. text-transform: none;
  281. width: 1px;
  282. }
  283. .md-shadow {
  284. position: absolute;
  285. top: 0;
  286. left: 0;
  287. bottom: 0;
  288. right: 0;
  289. border-radius: inherit;
  290. pointer-events: none;
  291. }
  292. .md-shadow-bottom-z-1 {
  293. @include md-shadow-bottom-z-1();
  294. }
  295. .md-shadow-bottom-z-2 {
  296. @include md-shadow-bottom-z-2();
  297. }
  298. .md-shadow-animated.md-shadow {
  299. transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  300. }
  301. /*
  302. * A container inside of a rippling element (eg a button),
  303. * which contains all of the individual ripples
  304. */
  305. .md-ripple-container {
  306. pointer-events: none;
  307. position: absolute;
  308. overflow: hidden;
  309. left: 0;
  310. top: 0;
  311. width: 100%;
  312. height: 100%;
  313. transition: all 0.55s $swift-ease-out-timing-function;
  314. }
  315. .md-ripple {
  316. position: absolute;
  317. transform: translate(-50%, -50%) scale(0);
  318. transform-origin: 50% 50%;
  319. opacity: 0;
  320. border-radius: 50%;
  321. &.md-ripple-placed {
  322. $sizeDuration: 0.45s * 2;
  323. transition: margin $sizeDuration $swift-ease-out-timing-function,
  324. border $sizeDuration $swift-ease-out-timing-function,
  325. width $sizeDuration $swift-ease-out-timing-function,
  326. height $sizeDuration $swift-ease-out-timing-function,
  327. opacity $sizeDuration $swift-ease-out-timing-function,
  328. transform $sizeDuration $swift-ease-out-timing-function;
  329. }
  330. &.md-ripple-scaled {
  331. transform: translate(-50%, -50%) scale(1);
  332. }
  333. &.md-ripple-active, &.md-ripple-full, &.md-ripple-visible {
  334. opacity: 0.20;
  335. }
  336. }
  337. .md-padding {
  338. padding: 8px;
  339. }
  340. .md-margin {
  341. margin: 8px;
  342. }
  343. .md-scroll-mask {
  344. position: absolute;
  345. background-color: transparent;
  346. top: 0;
  347. right: 0;
  348. bottom: 0;
  349. left: 0;
  350. > .md-scroll-mask-bar {
  351. display: block;
  352. position: absolute;
  353. background-color: #fafafa;
  354. right: 0;
  355. top: 0;
  356. bottom: 0;
  357. z-index: $z-index-scroll-mask;
  358. box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.3)
  359. }
  360. }
  361. @media (min-width: $layout-breakpoint-sm) {
  362. .md-padding {
  363. padding: 16px;
  364. }
  365. }
  366. // Global page styles
  367. //
  368. // [2] Ensure the page always fills at least the entire height of the viewport.
  369. // [3] Prevent iOS text size adjust after orientation change, without disabling user zoom
  370. // [4] Fonts on OSX will look more consistent with other systems that do not
  371. // render text using sub-pixel anti-aliasing.
  372. html, body {
  373. -webkit-tap-highlight-color: rgba(0,0,0,0);
  374. -webkit-touch-callout: none;
  375. min-height: 100%; // [2]
  376. -webkit-text-size-adjust: 100%; // [3]
  377. -ms-text-size-adjust: 100%; // [3]
  378. -webkit-font-smoothing: antialiased; // [4]
  379. -moz-osx-font-smoothing: grayscale; // [4]
  380. }
  381. md-select, md-card, md-list, md-toolbar,
  382. ul, ol, p, h1, h2, h3, h4, h5, h6 {
  383. //text-rendering: optimizeLegibility;
  384. }
  385. /************
  386. * Headings
  387. ************/
  388. .md-display-4 {
  389. font-size: $display-4-font-size-base;
  390. font-weight: 300;
  391. letter-spacing: -0.010em;
  392. line-height: $display-4-font-size-base;
  393. }
  394. .md-display-3 {
  395. font-size: $display-3-font-size-base;
  396. font-weight: 400;
  397. letter-spacing: -0.005em;
  398. line-height: $display-3-font-size-base;
  399. }
  400. .md-display-2 {
  401. font-size: $display-2-font-size-base;
  402. font-weight: 400;
  403. line-height: rem(6.4);
  404. }
  405. .md-display-1 {
  406. font-size: $display-1-font-size-base;
  407. font-weight: 400;
  408. line-height: rem(4);
  409. }
  410. .md-headline {
  411. font-size: $headline-font-size-base;
  412. font-weight: 400;
  413. line-height: rem(3.2);
  414. }
  415. .md-title {
  416. @include md-title();
  417. }
  418. .md-subhead {
  419. @include md-subhead();
  420. }
  421. /************
  422. * Body Copy
  423. ************/
  424. .md-body-1 {
  425. @include md-body-1();
  426. }
  427. .md-body-2 {
  428. @include md-body-2();
  429. }
  430. .md-caption {
  431. font-size: $caption-font-size-base;
  432. letter-spacing: 0.020em;
  433. }
  434. .md-button {
  435. letter-spacing: 0.010em;
  436. }
  437. /************
  438. * Defaults
  439. ************/
  440. button,
  441. select,
  442. html,
  443. textarea,
  444. input {
  445. font-family: $font-family;
  446. }
  447. select,
  448. button,
  449. textarea,
  450. input {
  451. font-size: 100%;
  452. }
  453. /*
  454. *
  455. * Responsive attributes
  456. *
  457. * References:
  458. * 1) https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties#flex
  459. * 2) https://css-tricks.com/almanac/properties/f/flex/
  460. * 3) https://github.com/philipwalton/flexbugs#3-min-height-on-a-flex-container-wont-apply-to-its-flex-items
  461. * 4) http://godban.com.ua/projects/flexgrid
  462. *
  463. */
  464. @-moz-document url-prefix() {
  465. .layout-fill {
  466. margin: 0;
  467. width: 100%;
  468. min-height: 100%;
  469. height: 100%;
  470. }
  471. }
  472. @mixin flex-order-for-name($sizes:null) {
  473. @if $sizes == null {
  474. $sizes : '';
  475. .flex-order {
  476. order : 0;
  477. }
  478. }
  479. @for $i from 0 through 19 {
  480. $order : '';
  481. $suffix : '';
  482. @each $s in $sizes {
  483. @if $s != '' { $suffix : '#{$s}-#{$i}'; }
  484. @else { $suffix : '#{$i}'; }
  485. $order : '.flex-order-#{$suffix}';
  486. }
  487. #{$order} {
  488. order: #{$i};
  489. }
  490. }
  491. }
  492. @mixin offset-for-name($sizes:null) {
  493. @if $sizes == null { $sizes : ''; }
  494. @for $i from 0 through 19 {
  495. $offsets : '';
  496. $suffix : '';
  497. @each $s in $sizes {
  498. @if $s != '' { $suffix : '#{$s}-#{$i * 5}'; }
  499. @else { $suffix : '#{$i * 5}'; }
  500. $offsets : '.offset-#{$suffix}, .flex-offset-#{$suffix}';
  501. }
  502. #{$offsets} {
  503. margin-left: #{$i * 5 + '%'};
  504. }
  505. }
  506. @each $i in 33, 34 {
  507. $offsets : '';
  508. $suffix : '';
  509. @each $s in $sizes {
  510. @if $s != '' { $suffix : '#{$s}-#{$i}'; }
  511. @else { $suffix : '#{$i}'; }
  512. $offsets : '.offset-#{$suffix}, .flex-offset-#{$suffix} ';
  513. }
  514. #{$offsets} {
  515. margin-left: #{$i+'%'};
  516. }
  517. }
  518. @each $i in 66, 67 {
  519. $offsets : '';
  520. $suffix : '';
  521. @each $s in $sizes {
  522. @if $s != '' { $suffix : '#{$s}-#{$i}'; }
  523. @else { $suffix : '#{$i}'; }
  524. $offsets : '.offset-#{$suffix}, .flex-offset-#{$suffix} ';
  525. }
  526. #{$offsets} {
  527. margin-left: #{$i+'%'};
  528. }
  529. }
  530. }
  531. @mixin layout-for-name($name: null) {
  532. @if $name == null { $name : ''; }
  533. @if $name != '' { $name : '-#{$name}'; }
  534. .layout#{$name}, .layout#{$name}-column, .layout#{$name}-row, {
  535. box-sizing: border-box;
  536. display: -webkit-box;
  537. display: -webkit-flex;
  538. display: -moz-box;
  539. display: -ms-flexbox;
  540. display: flex;
  541. }
  542. .layout#{$name}-column { flex-direction: column; }
  543. .layout#{$name}-row { flex-direction: row; }
  544. }
  545. @mixin flex-properties-for-name($name: null) {
  546. $flexName: 'flex';
  547. @if $name != null {
  548. $flexName: 'flex-#{$name}';
  549. $name : '-#{$name}';
  550. } @else {
  551. $name : '';
  552. }
  553. .#{$flexName} { flex: 1; box-sizing: border-box; } // === flex: 1 1 0%;
  554. .#{$flexName}-grow { flex: 1 1 100%; box-sizing: border-box; }
  555. .#{$flexName}-initial { flex: 0 1 auto; box-sizing: border-box; }
  556. .#{$flexName}-auto { flex: 1 1 auto; box-sizing: border-box; }
  557. .#{$flexName}-none { flex: 0 0 auto; box-sizing: border-box; }
  558. // (1-20) * 5 = 0-100%
  559. @for $i from 0 through 20 {
  560. $value : #{$i * 5 + '%'};
  561. .#{$flexName}-#{$i * 5} {
  562. flex: 0 0 #{$value};
  563. max-width: #{$value};
  564. max-height: 100%;
  565. box-sizing: border-box;
  566. }
  567. .layout-row > .#{$flexName}-#{$i * 5},
  568. .layout#{$name}-row > .#{$flexName}-#{$i * 5} {
  569. flex: 0 0 #{$value};
  570. max-width: #{$value};
  571. max-height: 100%;
  572. box-sizing: border-box;
  573. }
  574. .layout-column > .#{$flexName}-#{$i * 5},
  575. .layout#{$name}-column > .#{$flexName}-#{$i * 5} {
  576. flex: 0 0 #{$value};
  577. max-width: 100%;
  578. max-height: #{$value};
  579. box-sizing: border-box;
  580. }
  581. }
  582. .layout-row, .layout#{$name}-row {
  583. > .#{$flexName}-33 , > .#{$flexName}-33 { flex: 0 0 33%; max-width: 33%; max-height: 100%; box-sizing: border-box; }
  584. > .#{$flexName}-34 , > .#{$flexName}-34 { flex: 0 0 34%; max-width: 34%; max-height: 100%; box-sizing: border-box; }
  585. > .#{$flexName}-66 , > .#{$flexName}-66 { flex: 0 0 66%; max-width: 66%; max-height: 100%; box-sizing: border-box; }
  586. > .#{$flexName}-67 , > .#{$flexName}-67 { flex: 0 0 67%; max-width: 67%; max-height: 100%; box-sizing: border-box; }
  587. }
  588. .layout-column, .layout#{$name}-column {
  589. > .#{$flexName}-33 , > .#{$flexName}-33 { flex: 0 0 33%; max-width: 100%; max-height: 33%; box-sizing: border-box; }
  590. > .#{$flexName}-34 , > .#{$flexName}-34 { flex: 0 0 34%; max-width: 100%; max-height: 34%; box-sizing: border-box; }
  591. > .#{$flexName}-66 , > .#{$flexName}-66 { flex: 0 0 66%; max-width: 100%; max-height: 66%; box-sizing: border-box; }
  592. > .#{$flexName}-67 , > .#{$flexName}-67 { flex: 0 0 67%; max-width: 100%; max-height: 67%; box-sizing: border-box; }
  593. }
  594. }
  595. @mixin layout-align-for-name($suffix: null) {
  596. // Alignment attributes for layout containers' children
  597. // Arrange on the Main Axis
  598. // center, start, end, space-between, space-around
  599. // flex-start is the default for justify-content
  600. // ------------------------------
  601. $name: 'layout-align';
  602. @if $suffix != null {
  603. $name: 'layout-align-#{$suffix}';
  604. }
  605. // Main Axis Center
  606. .#{$name}-center, //stretch
  607. .#{$name}-center-center,
  608. .#{$name}-center-start,
  609. .#{$name}-center-end,
  610. {
  611. justify-content: center;
  612. }
  613. // Main Axis End
  614. .#{$name}-end, //stretch
  615. .#{$name}-end-center,
  616. .#{$name}-end-start,
  617. .#{$name}-end-end,
  618. {
  619. justify-content: flex-end;
  620. }
  621. // Main Axis Space Around
  622. .#{$name}-space-around, //stretch
  623. .#{$name}-space-around-center,
  624. .#{$name}-space-around-start,
  625. .#{$name}-space-around-end,
  626. {
  627. justify-content: space-around;
  628. }
  629. // Main Axis Space Between
  630. .#{$name}-space-between, //stretch
  631. .#{$name}-space-between-center,
  632. .#{$name}-space-between-start,
  633. .#{$name}-space-between-end,
  634. {
  635. justify-content: space-between;
  636. }
  637. // Arrange on the Cross Axis
  638. // center, start, end
  639. // stretch is the default for align-items
  640. // ------------------------------
  641. // Cross Axis Start
  642. .#{$name}-center-start,
  643. .#{$name}-start-start,
  644. .#{$name}-end-start,
  645. .#{$name}-space-between-start,
  646. .#{$name}-space-around-start,
  647. {
  648. align-items: flex-start;
  649. }
  650. // Cross Axis Center
  651. .#{$name}-center-center,
  652. .#{$name}-start-center,
  653. .#{$name}-end-center,
  654. .#{$name}-space-between-center,
  655. .#{$name}-space-around-center,
  656. {
  657. align-items: center;
  658. max-width: 100%;
  659. }
  660. // Cross Axis Center IE overflow fix
  661. .#{$name}-center-center > *,
  662. .#{$name}-start-center > *,
  663. .#{$name}-end-center > *,
  664. .#{$name}-space-between-center > *,
  665. .#{$name}-space-around-center > *,
  666. {
  667. max-width: 100%;
  668. box-sizing: border-box;
  669. }
  670. // Cross Axis End
  671. .#{$name}-center-end,
  672. .#{$name}-start-end,
  673. .#{$name}-end-end,
  674. .#{$name}-space-between-end,
  675. .#{$name}-space-around-end,
  676. {
  677. align-items: flex-end;
  678. }
  679. }
  680. @mixin layout-padding-margin() {
  681. .layout-padding > .flex-sm, .layout-padding > .flex-lt-md {
  682. padding: $layout-gutter-width / 4;
  683. }
  684. .layout-padding,
  685. .layout-padding > .flex,
  686. .layout-padding > .flex-gt-sm,
  687. .layout-padding > .flex-md,
  688. .layout-padding > .flex-lt-lg
  689. {
  690. padding: $layout-gutter-width / 2;
  691. }
  692. .layout-padding > .flex-gt-md,
  693. .layout-padding > .flex-lg
  694. {
  695. padding: $layout-gutter-width / 1;
  696. }
  697. .layout-margin > .flex-sm,
  698. .layout-margin > .flex-lt-md
  699. {
  700. margin: $layout-gutter-width / 4;
  701. }
  702. .layout-margin,
  703. .layout-margin > .flex,
  704. .layout-margin > .flex-gt-sm,
  705. .layout-margin > .flex-md,
  706. .layout-margin > .flex-lt-lg
  707. {
  708. margin: $layout-gutter-width / 2;
  709. }
  710. .layout-margin > .flex-gt-md,
  711. .layout-margin > .flex-lg
  712. {
  713. margin: $layout-gutter-width / 1;
  714. }
  715. .layout-wrap {
  716. flex-wrap: wrap;
  717. }
  718. .layout-nowrap {
  719. flex-wrap: nowrap;
  720. }
  721. .layout-fill {
  722. margin: 0;
  723. width: 100%;
  724. min-height: 100%;
  725. height: 100%;
  726. }
  727. }
  728. @mixin layouts_for_breakpoint($name:null) {
  729. @include flex-order-for-name($name);
  730. @include offset-for-name($name);
  731. @include layout-align-for-name($name);
  732. @include flex-properties-for-name($name);
  733. @include layout-for-name($name);
  734. }
  735. /*
  736. * Apply Mixins to create Layout/Flexbox styles
  737. *
  738. */
  739. @include layouts_for_breakpoint();
  740. @include layout-padding-margin();
  741. /**
  742. * `hide-gt-sm show-gt-lg` should hide from 600px to 1200px
  743. * `show-md hide-gt-sm` should show from 0px to 960px and hide at >960px
  744. * `hide-gt-md show-gt-sm` should show everywhere (show overrides hide)`
  745. *
  746. * hide means hide everywhere
  747. * Sizes:
  748. * 0 <= size < 600 Phone
  749. * 600 <= size < 960 Tablet
  750. * 960 <= size < 1200 Tablet-Landscape
  751. */
  752. @media (max-width: $layout-breakpoint-sm - 1) {
  753. // SMALL SCREEN
  754. .hide-sm, .hide {
  755. &:not(.show-sm):not(.show) {
  756. display: none;
  757. }
  758. }
  759. @include layouts_for_breakpoint(sm);
  760. }
  761. @media (min-width: $layout-breakpoint-sm) {
  762. // BIGGER THAN SMALL SCREEN
  763. @include layouts_for_breakpoint(gt-sm);
  764. }
  765. @media (min-width: $layout-breakpoint-sm) and (max-width: $layout-breakpoint-md - 1) {
  766. // MEDIUM SCREEN
  767. .hide, .hide-gt-sm {
  768. &:not(.show-gt-sm):not(.show-md):not(.show) {
  769. display: none;
  770. }
  771. }
  772. .hide-md:not(.show-md):not(.show) {
  773. display: none;
  774. }
  775. @include layouts_for_breakpoint(md);
  776. }
  777. @media (min-width: $layout-breakpoint-md) {
  778. // BIGGER THAN MEDIUM SCREEN
  779. @include layouts_for_breakpoint(gt-md);
  780. }
  781. @media (min-width: $layout-breakpoint-md) and (max-width: $layout-breakpoint-lg - 1) {
  782. // LARGE SCREEN
  783. .hide, .hide-gt-sm, .hide-gt-md {
  784. &:not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show) {
  785. display: none;
  786. }
  787. }
  788. .hide-lg:not(.show-lg):not(.show) {
  789. display: none;
  790. }
  791. @include layouts_for_breakpoint(lg);
  792. }
  793. @media (min-width: $layout-breakpoint-lg) {
  794. // BIGGER THAN LARGE SCREEN
  795. .hide-gt-sm, .hide-gt-md, .hide-gt-lg, .hide {
  796. &:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show) {
  797. display: none;
  798. }
  799. }
  800. @include layouts_for_breakpoint(gt-lg);
  801. }
  802. $autocomplete-option-height: 48px;
  803. $input-container-padding: 2px !default;
  804. $input-error-height: 24px !default;
  805. @keyframes md-autocomplete-list-out {
  806. 0% {
  807. animation-timing-function: linear;
  808. }
  809. 50% {
  810. opacity: 0;
  811. height: 40px;
  812. animation-timing-function: ease-in;
  813. }
  814. 100% {
  815. height: 0;
  816. opacity: 0;
  817. }
  818. }
  819. @keyframes md-autocomplete-list-in {
  820. 0% {
  821. opacity: 0;
  822. height: 0;
  823. animation-timing-function: ease-out;
  824. }
  825. 50% {
  826. opacity: 0;
  827. height: 40px;
  828. }
  829. 100% {
  830. opacity: 1;
  831. height: 40px;
  832. }
  833. }
  834. md-autocomplete {
  835. border-radius: 2px;
  836. display: block;
  837. height: 40px;
  838. position: relative;
  839. overflow: visible;
  840. min-width: 190px;
  841. &[disabled] {
  842. input {
  843. cursor: not-allowed;
  844. }
  845. }
  846. &[md-floating-label] {
  847. border-radius: 0;
  848. background: transparent;
  849. height: auto;
  850. md-input-container {
  851. padding-bottom: $input-container-padding + $input-error-height;
  852. // When we have ng-messages, remove the input error height from our bottom padding, since the
  853. // ng-messages wrapper has a min-height of 1 error (so we don't adjust height as often; see
  854. // input.scss file)
  855. &.md-input-has-messages {
  856. padding-bottom: $input-container-padding;
  857. }
  858. }
  859. md-autocomplete-wrap {
  860. height: auto;
  861. }
  862. button {
  863. position: absolute;
  864. top: auto;
  865. bottom: 0;
  866. right: 0;
  867. width: 30px;
  868. height: 30px;
  869. }
  870. }
  871. md-autocomplete-wrap {
  872. display: block;
  873. position: relative;
  874. overflow: visible;
  875. height: 40px;
  876. &.md-menu-showing {
  877. z-index: $z-index-backdrop + 1;
  878. }
  879. md-progress-linear {
  880. position: absolute;
  881. bottom: -2px;
  882. left: 0;
  883. .md-mode-indeterminate {
  884. position: absolute;
  885. top: 0;
  886. left: 0;
  887. width: 100%;
  888. height: 3px;
  889. transition: none;
  890. .md-container {
  891. transition: none;
  892. height: 3px;
  893. }
  894. &.ng-enter {
  895. transition: opacity 0.15s linear;
  896. &.ng-enter-active {
  897. opacity: 1;
  898. }
  899. }
  900. &.ng-leave {
  901. transition: opacity 0.15s linear;
  902. &.ng-leave-active {
  903. opacity: 0;
  904. }
  905. }
  906. }
  907. }
  908. }
  909. input:not(.md-input) {
  910. @include md-flat-input();
  911. width: 100%;
  912. padding: 0 15px;
  913. line-height: 40px;
  914. height: 40px;
  915. }
  916. button {
  917. position: relative;
  918. line-height: 20px;
  919. text-align: center;
  920. width: 30px;
  921. height: 30px;
  922. cursor: pointer;
  923. border: none;
  924. border-radius: 50%;
  925. padding: 0;
  926. font-size: 12px;
  927. background: transparent;
  928. margin: auto 5px;
  929. &:after {
  930. content: '';
  931. position: absolute;
  932. top: -6px;
  933. right: -6px;
  934. bottom: -6px;
  935. left: -6px;
  936. border-radius: 50%;
  937. transform: scale(0);
  938. opacity: 0;
  939. transition: $swift-ease-out;
  940. }
  941. &:focus {
  942. outline: none;
  943. &:after {
  944. transform: scale(1);
  945. opacity: 1;
  946. }
  947. }
  948. md-icon {
  949. position: absolute;
  950. top: 50%;
  951. left: 50%;
  952. transform: translate3d(-50%, -50%, 0) scale(0.9);
  953. path {
  954. stroke-width: 0;
  955. }
  956. }
  957. &.ng-enter {
  958. transform: scale(0);
  959. transition: transform 0.15s ease-out;
  960. &.ng-enter-active {
  961. transform: scale(1);
  962. }
  963. }
  964. &.ng-leave {
  965. transition: transform 0.15s ease-out;
  966. &.ng-leave-active {
  967. transform: scale(0);
  968. }
  969. }
  970. }
  971. @media screen and (-ms-high-contrast: active) {
  972. $border-color: #fff;
  973. input {
  974. border: 1px solid $border-color;
  975. }
  976. li:focus {
  977. color: #fff;
  978. }
  979. }
  980. }
  981. .md-virtual-repeat-container.md-autocomplete-suggestions-container {
  982. position: absolute;
  983. box-shadow: 0 2px 5px rgba(black, 0.25);
  984. height: 41px * 5.5;
  985. max-height: 41px * 5.5;
  986. z-index: $z-index-tooltip;
  987. }
  988. .md-autocomplete-suggestions {
  989. margin: 0;
  990. list-style: none;
  991. padding: 0;
  992. li {
  993. font-size: 14px;
  994. overflow: hidden;
  995. padding: 0 15px;
  996. line-height: $autocomplete-option-height;
  997. height: $autocomplete-option-height;
  998. transition: background 0.15s linear;
  999. margin: 0;
  1000. white-space: nowrap;
  1001. text-overflow: ellipsis;
  1002. &:focus {
  1003. outline: none;
  1004. }
  1005. &:not(.md-not-found-wrapper) {
  1006. cursor: pointer;
  1007. }
  1008. }
  1009. }
  1010. @media screen and (-ms-high-contrast: active) {
  1011. md-autocomplete,
  1012. .md-autocomplete-suggestions {
  1013. border: 1px solid #fff;
  1014. }
  1015. }
  1016. // !!Important - Theme-based Background-color can be configured in backdrop-theme.scss
  1017. // - Animate background-color opacityy only for `.md-opaque` styles
  1018. md-backdrop {
  1019. transition: opacity 450ms;
  1020. position: absolute;
  1021. top:0;
  1022. bottom:0;
  1023. left: 0;
  1024. right: 0;
  1025. z-index: $z-index-backdrop;
  1026. &.md-menu-backdrop {
  1027. position: fixed !important;
  1028. z-index: $z-index-menu - 1;
  1029. }
  1030. &.md-select-backdrop {
  1031. z-index: $z-index-dialog + 1;
  1032. transition-duration: 0;
  1033. }
  1034. &.md-dialog-backdrop {
  1035. z-index: $z-index-dialog - 1;
  1036. }
  1037. &.md-bottom-sheet-backdrop {
  1038. z-index: $z-index-bottom-sheet - 1;
  1039. }
  1040. &.md-sidenav-backdrop {
  1041. z-index: $z-index-sidenav - 1;
  1042. }
  1043. &.md-click-catcher {
  1044. position: absolute;
  1045. }
  1046. &.md-opaque {
  1047. opacity: .48;
  1048. &.ng-enter {
  1049. opacity: 0;
  1050. }
  1051. &.ng-enter.md-opaque.ng-enter-active {
  1052. opacity: .48;
  1053. }
  1054. &.ng-leave {
  1055. opacity: .48;
  1056. transition: opacity 400ms;
  1057. }
  1058. &.ng-leave.md-opaque.ng-leave-active {
  1059. opacity: 0;
  1060. }
  1061. }
  1062. }
  1063. $bottom-sheet-horizontal-padding: 2 * $baseline-grid !default;
  1064. $bottom-sheet-vertical-padding: 1 * $baseline-grid !default;
  1065. $bottom-sheet-icon-after-margin: 4 * $baseline-grid !default;
  1066. $bottom-sheet-list-item-height: 6 * $baseline-grid !default;
  1067. $bottom-sheet-hidden-bottom-padding: 80px !default;
  1068. $bottom-sheet-header-height: 7 * $baseline-grid !default;
  1069. $bottom-sheet-grid-font-weight: 400 !default;
  1070. md-bottom-sheet {
  1071. position: absolute;
  1072. left: 0;
  1073. right: 0;
  1074. bottom: 0;
  1075. padding: $bottom-sheet-vertical-padding $bottom-sheet-horizontal-padding $bottom-sheet-vertical-padding + $bottom-sheet-hidden-bottom-padding $bottom-sheet-horizontal-padding;
  1076. z-index: $z-index-bottom-sheet;
  1077. border-top-width: 1px;
  1078. border-top-style: solid;
  1079. transform: translate3d(0, $bottom-sheet-hidden-bottom-padding, 0);
  1080. transition: $swift-ease-out;
  1081. transition-property: transform;
  1082. &.md-has-header {
  1083. padding-top: 0;
  1084. }
  1085. &.ng-enter {
  1086. opacity: 0;
  1087. transform: translate3d(0, 100%, 0);
  1088. }
  1089. &.ng-enter-active {
  1090. opacity: 1;
  1091. display: block;
  1092. transform: translate3d(0, $bottom-sheet-hidden-bottom-padding, 0) !important;
  1093. }
  1094. &.ng-leave-active {
  1095. transform: translate3d(0, 100%, 0) !important;
  1096. transition: $swift-ease-in;
  1097. }
  1098. .md-subheader {
  1099. background-color: transparent;
  1100. font-family: $font-family;
  1101. line-height: $bottom-sheet-header-height;
  1102. padding: 0;
  1103. white-space: nowrap;
  1104. }
  1105. md-inline-icon {
  1106. display: inline-block;
  1107. height: 24px;
  1108. width: 24px;
  1109. fill: #444;
  1110. }
  1111. md-list-item {
  1112. display: flex;
  1113. outline: none;
  1114. &:hover {
  1115. cursor: pointer;
  1116. }
  1117. }
  1118. &.md-list {
  1119. md-list-item {
  1120. padding: 0;
  1121. align-items: center;
  1122. height: $bottom-sheet-list-item-height;
  1123. div.md-icon-container {
  1124. display: inline-block;
  1125. height: 3 * $baseline-grid;
  1126. margin-right: $bottom-sheet-icon-after-margin;
  1127. }
  1128. }
  1129. }
  1130. &.md-grid {
  1131. padding-left: 3 * $baseline-grid;
  1132. padding-right: 3 * $baseline-grid;
  1133. padding-top: 0;
  1134. md-list {
  1135. display: flex;
  1136. flex-direction: row;
  1137. flex-wrap: wrap;
  1138. transition: all 0.5s;
  1139. align-items: center;
  1140. }
  1141. md-list-item {
  1142. flex-direction: column;
  1143. align-items: center;
  1144. transition: all 0.5s;
  1145. height: 12 * $baseline-grid;
  1146. margin-top: $baseline-grid;
  1147. margin-bottom: $baseline-grid;
  1148. /* Mixin for how many grid items to show per row */
  1149. @mixin grid-items-per-row($num, $alignEdges: false) {
  1150. $width: 100% / $num;
  1151. flex: 1 1 $width;
  1152. max-width: $width;
  1153. @if $alignEdges {
  1154. &:nth-of-type(#{$num}n + 1) {
  1155. align-items: flex-start;
  1156. }
  1157. &:nth-of-type(#{$num}n) {
  1158. align-items: flex-end;
  1159. }
  1160. }
  1161. }
  1162. @media screen and (max-width: $layout-breakpoint-sm) {
  1163. @include grid-items-per-row(3, true);
  1164. }
  1165. @media screen and (min-width: $layout-breakpoint-sm) and (max-width: $layout-breakpoint-md) {
  1166. @include grid-items-per-row(4);
  1167. }
  1168. @media screen and (min-width: $layout-breakpoint-md) and (max-width: $layout-breakpoint-lg) {
  1169. @include grid-items-per-row(6);
  1170. }
  1171. @media screen and (min-width: $layout-breakpoint-lg) {
  1172. @include grid-items-per-row(7);
  1173. }
  1174. .md-list-item-content {
  1175. display: flex;
  1176. flex-direction: column;
  1177. align-items: center;
  1178. width: 6 * $baseline-grid;
  1179. padding-bottom: 2 * $baseline-grid;
  1180. }
  1181. .md-grid-item-content {
  1182. border: 1px solid transparent;
  1183. display: flex;
  1184. flex-direction: column;
  1185. align-items: center;
  1186. width: 10 * $baseline-grid;
  1187. }
  1188. .md-icon-container {
  1189. display: inline-block;
  1190. box-sizing: border-box;
  1191. height: 6 * $baseline-grid;
  1192. width: 6 * $baseline-grid;
  1193. margin: 0 0;
  1194. }
  1195. .md-grid-text {
  1196. font-weight: $bottom-sheet-grid-font-weight;
  1197. line-height: 2 * $baseline-grid;
  1198. font-size: 2 * $baseline-grid - 3;
  1199. margin: 0;
  1200. white-space: nowrap;
  1201. width: 8 * $baseline-grid;
  1202. text-align: center;
  1203. text-transform: none;
  1204. padding-top: 1 * $baseline-grid;
  1205. }
  1206. }
  1207. }
  1208. }
  1209. @media screen and (-ms-high-contrast: active) {
  1210. md-bottom-sheet {
  1211. border: 1px solid #fff;
  1212. }
  1213. }
  1214. $button-border-radius: 3px !default;
  1215. $button-fab-border-radius: 50% !default;
  1216. $button-icon-border-radius: $button-fab-border-radius;
  1217. $button-line-height: rem(3.60) !default;
  1218. $button-padding: 0 rem(0.600) !default;
  1219. $button-margin: rem(0.600) rem(0.800) !default;
  1220. $button-min-width: rem(8.800) !default;
  1221. // Fab buttons
  1222. $button-fab-line-height: rem(5.600) !default;
  1223. $button-fab-mini-width: rem(4.00) !default;
  1224. $button-fab-mini-height: rem(4.00) !default;
  1225. $button-fab-mini-line-height: rem(4.00) !default;
  1226. $button-fab-toast-offset: $button-fab-height * 0.75 !default;
  1227. $icon-button-height: rem(4.800) !default;
  1228. $icon-button-width: rem(4.800) !default;
  1229. $icon-button-margin: rem(0.600) !default;
  1230. // Fix issue causing buttons in Firefox to be 2px bigger than they should
  1231. button.md-button::-moz-focus-inner {
  1232. border: 0;
  1233. }
  1234. .md-button {
  1235. border-radius: $button-border-radius;
  1236. box-sizing: border-box;
  1237. color: currentColor;
  1238. user-select: none;
  1239. position: relative; //for child absolute-positioned <canvas>
  1240. outline: none;
  1241. border: 0;
  1242. display: inline-block;
  1243. align-items: center;
  1244. padding: $button-padding;
  1245. margin: $button-margin;
  1246. line-height: $button-line-height;
  1247. min-height: $button-line-height;
  1248. background: transparent;
  1249. white-space: nowrap;
  1250. // override for FAB, icon buttons, etc.
  1251. min-width: $button-min-width;
  1252. text-align: center;
  1253. // Always uppercase buttons
  1254. text-transform: uppercase;
  1255. font-weight: 500;
  1256. font-size: $body-font-size-base;
  1257. font-style: inherit;
  1258. font-variant: inherit;
  1259. font-family: inherit;
  1260. text-decoration: none;
  1261. cursor: pointer;
  1262. overflow: hidden; // for ink containment
  1263. transition: box-shadow $swift-ease-out-duration $swift-ease-out-timing-function,
  1264. background-color $swift-ease-out-duration $swift-ease-out-timing-function;
  1265. &:focus {
  1266. outline: none;
  1267. }
  1268. &:hover, &:focus {
  1269. text-decoration: none;
  1270. }
  1271. &.ng-hide, &.ng-leave {
  1272. transition: none;
  1273. }
  1274. &.md-cornered {
  1275. border-radius: 0;
  1276. }
  1277. &.md-icon {
  1278. padding: 0;
  1279. background: none;
  1280. }
  1281. &.md-raised {
  1282. &:not([disabled]) {
  1283. @include md-shadow-bottom-z-1();
  1284. }
  1285. }
  1286. &.md-icon-button {
  1287. margin: 0 $icon-button-margin;
  1288. height: $icon-button-height;
  1289. min-width: 0;
  1290. line-height: $icon-button-height;
  1291. padding-left: 0;
  1292. padding-right: 0;
  1293. width: $icon-button-width;
  1294. border-radius: $button-icon-border-radius;
  1295. .md-ripple-container {
  1296. border-radius: $button-icon-border-radius;
  1297. background-clip: padding-box;
  1298. overflow: hidden;
  1299. // The following hack causes Safari/Chrome to respect overflow hidden for ripples
  1300. -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC');
  1301. }
  1302. }
  1303. &.md-fab {
  1304. // Include the top/left/bottom/right fab positions
  1305. @include fab-all-positions();
  1306. z-index: $z-index-fab;
  1307. line-height: $button-fab-line-height;
  1308. min-width: 0;
  1309. width: $button-fab-width;
  1310. height: $button-fab-height;
  1311. vertical-align: middle;
  1312. @include md-shadow-bottom-z-1();
  1313. border-radius: $button-fab-border-radius;
  1314. background-clip: padding-box;
  1315. overflow: hidden;
  1316. transition: 0.2s linear;
  1317. transition-property: background-color, box-shadow;
  1318. .md-ripple-container {
  1319. border-radius: $button-fab-border-radius;
  1320. background-clip: padding-box;
  1321. overflow: hidden;
  1322. // The following hack causes Safari/Chrome to respect overflow hidden for ripples
  1323. -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC');
  1324. }
  1325. &.md-mini {
  1326. line-height: $button-fab-mini-line-height;
  1327. width: $button-fab-mini-width;
  1328. height: $button-fab-mini-height;
  1329. }
  1330. }
  1331. &:not([disabled]) {
  1332. &.md-raised,
  1333. &.md-fab {
  1334. &.md-focused {
  1335. @include md-shadow-bottom-z-1();
  1336. }
  1337. &:active {
  1338. @include md-shadow-bottom-z-2();
  1339. }
  1340. }
  1341. }
  1342. .md-ripple-container {
  1343. border-radius: $button-border-radius;
  1344. background-clip: padding-box;
  1345. overflow: hidden;
  1346. // The following hack causes Safari/Chrome to respect overflow hidden for ripples
  1347. -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC');
  1348. }
  1349. }
  1350. .md-toast-open-top {
  1351. .md-button.md-fab-top-left,
  1352. .md-button.md-fab-top-right {
  1353. transform: translate3d(0, $button-fab-toast-offset, 0);
  1354. &:not([disabled]) {
  1355. &.md-focused,
  1356. &:hover {
  1357. transform: translate3d(0, $button-fab-toast-offset - 1, 0);
  1358. }
  1359. }
  1360. }
  1361. }
  1362. .md-toast-open-bottom {
  1363. .md-button.md-fab-bottom-left,
  1364. .md-button.md-fab-bottom-right {
  1365. transform: translate3d(0, -$button-fab-toast-offset, 0);
  1366. &:not([disabled]) {
  1367. &.md-focused,
  1368. &:hover {
  1369. transform: translate3d(0, -$button-fab-toast-offset - 1, 0);
  1370. }
  1371. }
  1372. }
  1373. }
  1374. .md-button-group {
  1375. display: flex;
  1376. flex: 1;
  1377. width: 100%;
  1378. }
  1379. .md-button-group > .md-button {
  1380. flex: 1;
  1381. display: block;
  1382. overflow: hidden;
  1383. width: 0;
  1384. border-width: 1px 0px 1px 1px;
  1385. border-radius: 0;
  1386. text-align: center;
  1387. text-overflow: ellipsis;
  1388. white-space: nowrap;
  1389. &:first-child {
  1390. border-radius: 2px 0px 0px 2px;
  1391. }
  1392. &:last-child {
  1393. border-right-width: 1px;
  1394. border-radius: 0px 2px 2px 0px;
  1395. }
  1396. }
  1397. @media screen and (-ms-high-contrast: active) {
  1398. .md-button.md-raised,
  1399. .md-button.md-fab {
  1400. border: 1px solid #fff;
  1401. }
  1402. }
  1403. $card-padding: 16px !default;
  1404. $card-box-shadow: $whiteframe-shadow-1dp !default;
  1405. md-card {
  1406. box-sizing: border-box;
  1407. display: flex;
  1408. flex-direction: column;
  1409. margin: $baseline-grid;
  1410. box-shadow: $card-box-shadow;
  1411. > img,
  1412. > :not(md-card-content) img {
  1413. display: flex;
  1414. flex: 0 0 auto;
  1415. width: 100%;
  1416. height: auto;
  1417. }
  1418. md-card-content {
  1419. padding: $card-padding;
  1420. }
  1421. .md-actions {
  1422. margin: 0;
  1423. .md-button {
  1424. margin-bottom: $baseline-grid;
  1425. margin-top: $baseline-grid;
  1426. margin-right: $baseline-grid * .5;
  1427. margin-left: $baseline-grid * .5;
  1428. }
  1429. }
  1430. md-card-footer {
  1431. margin-top: auto;
  1432. padding: $card-padding;
  1433. }
  1434. }
  1435. @media screen and (-ms-high-contrast: active) {
  1436. md-card {
  1437. border: 1px solid #fff;
  1438. }
  1439. }
  1440. $checkbox-width: 18px !default;
  1441. $checkbox-height: $checkbox-width !default;
  1442. $checkbox-margin: 8px !default;
  1443. $checkbox-border-radius: 2px !default;
  1444. $checkbox-border-width: 2px !default;
  1445. $checkbox-text-margin: 10px !default;
  1446. $checkbox-top-left: 12px !default;
  1447. md-checkbox {
  1448. box-sizing: border-box;
  1449. display: block;
  1450. margin: $checkbox-margin;
  1451. white-space: nowrap;
  1452. cursor: pointer;
  1453. outline: none;
  1454. user-select: none;
  1455. @include rtl(padding-left, $checkbox-width, 0);
  1456. @include rtl(padding-right, 0, $checkbox-width);
  1457. position: relative;
  1458. line-height: $checkbox-width + $checkbox-margin;
  1459. min-width: $checkbox-width;
  1460. min-height: $checkbox-width;
  1461. &.md-focused:not([disabled]) {
  1462. .md-container:before {
  1463. left: -8px;
  1464. top: -8px;
  1465. right: -8px;
  1466. bottom: -8px;
  1467. }
  1468. &:not(.md-checked) {
  1469. .md-container:before {
  1470. background-color: rgba(0, 0, 0, 0.12);
  1471. }
  1472. }
  1473. }
  1474. .md-container {
  1475. position: absolute;
  1476. top: 50%;
  1477. transform: translateY(-50%);
  1478. box-sizing: border-box;
  1479. display: inline-block;
  1480. width: $checkbox-width;
  1481. height: $checkbox-height;
  1482. @include rtl(left, 0, auto);
  1483. @include rtl(right, auto, 0);
  1484. &:before {
  1485. box-sizing: border-box;
  1486. background-color: transparent;
  1487. border-radius: 50%;
  1488. content: '';
  1489. position: absolute;
  1490. display: block;
  1491. height: auto;
  1492. left: 0;
  1493. top: 0;
  1494. right: 0;
  1495. bottom: 0;
  1496. transition: all 0.5s;
  1497. width: auto;
  1498. }
  1499. &:after {
  1500. box-sizing: border-box;
  1501. content: '';
  1502. position: absolute;
  1503. top: -10px;
  1504. right: -10px;
  1505. bottom: -10px;
  1506. left: -10px;
  1507. }
  1508. .md-ripple-container {
  1509. position: absolute;
  1510. display: block;
  1511. width: auto;
  1512. height: auto;
  1513. left: -15px;
  1514. top: -15px;
  1515. right: -15px;
  1516. bottom: -15px;
  1517. }
  1518. }
  1519. &.md-align-top-left > div.md-container {
  1520. top: $checkbox-top-left;
  1521. }
  1522. // unchecked
  1523. .md-icon {
  1524. box-sizing: border-box;
  1525. transition: 240ms;
  1526. position: absolute;
  1527. top: 0;
  1528. left: 0;
  1529. width: $checkbox-width;
  1530. height: $checkbox-height;
  1531. border-width: $checkbox-border-width;
  1532. border-style: solid;
  1533. border-radius: $checkbox-border-radius;
  1534. }
  1535. &.md-checked .md-icon {
  1536. border: none;
  1537. }
  1538. // disabled
  1539. &[disabled] {
  1540. cursor: no-drop;
  1541. }
  1542. &.md-checked .md-icon:after {
  1543. box-sizing: border-box;
  1544. transform: rotate(45deg);
  1545. position: absolute;
  1546. left: $checkbox-width / 3;
  1547. top: $checkbox-width / 9;
  1548. display: table;
  1549. width: $checkbox-width / 3;
  1550. height: $checkbox-width * 2 / 3;
  1551. border-width: $checkbox-border-width;
  1552. border-style: solid;
  1553. border-top: 0;
  1554. border-left: 0;
  1555. content: '';
  1556. }
  1557. .md-label {
  1558. box-sizing: border-box;
  1559. position: relative;
  1560. display: inline-block;
  1561. vertical-align: middle;
  1562. white-space: normal;
  1563. user-select: text;
  1564. @include rtl(margin-left, $checkbox-text-margin, 0);
  1565. @include rtl(margin-right, 0, $checkbox-text-margin);
  1566. }
  1567. }
  1568. $chip-font-size: rem(1.6) !default;
  1569. $chip-height: rem(3.2) !default;
  1570. $chip-padding: 0 rem(1.2) 0 rem(1.2) !default;
  1571. $chip-remove-padding-right: rem(2.2) !default;
  1572. $chip-remove-line-height: rem(2.2) !default;
  1573. $chip-margin: rem(0.8) rem(0.8) 0 0 !default;
  1574. $chip-wrap-padding: 0 0 rem(0.8) rem(0.3) !default;
  1575. $chip-delete-icon-size: rem(1.8) !default;
  1576. $contact-chip-padding: 0 rem(2.5) 0 0 !default;
  1577. $contact-chip-suggestion-image-height: rem(4.0) !default;
  1578. $contact-chip-suggestion-margin: rem(0.8) !default;
  1579. $contact-chip-name-width: rem(12) !default;
  1580. .md-contact-chips {
  1581. .md-chips {
  1582. .md-chip {
  1583. padding: $contact-chip-padding;
  1584. .md-contact-avatar {
  1585. float: left;
  1586. img {
  1587. height: $chip-height;
  1588. border-radius: $chip-height / 2;
  1589. }
  1590. }
  1591. .md-contact-name {
  1592. display: inline-block;
  1593. height: $chip-height;
  1594. margin-left: rem(0.8);
  1595. }
  1596. }
  1597. }
  1598. }
  1599. .md-contact-suggestion {
  1600. height: ($contact-chip-suggestion-margin * 2) + $contact-chip-suggestion-image-height;
  1601. img {
  1602. height: $contact-chip-suggestion-image-height;
  1603. border-radius: $contact-chip-suggestion-image-height / 2;
  1604. margin-top: $contact-chip-suggestion-margin;
  1605. }
  1606. .md-contact-name {
  1607. margin-left: $contact-chip-suggestion-margin;
  1608. width: $contact-chip-name-width;
  1609. }
  1610. .md-contact-name, .md-contact-email {
  1611. display: inline-block;
  1612. overflow: hidden;
  1613. text-overflow: ellipsis;
  1614. }
  1615. }
  1616. .md-contact-chips-suggestions li {
  1617. height: 100%;
  1618. }
  1619. .md-chips {
  1620. @include pie-clearfix();
  1621. display: block;
  1622. font-family: $font-family;
  1623. font-size: $chip-font-size;
  1624. padding: $chip-wrap-padding;
  1625. vertical-align: middle;
  1626. &:not(.md-readonly) {
  1627. cursor: text;
  1628. .md-chip {
  1629. padding-right: $chip-remove-padding-right;
  1630. }
  1631. }
  1632. .md-chip {
  1633. cursor: default;
  1634. border-radius: $chip-height / 2;
  1635. display: block;
  1636. height: $chip-height;
  1637. line-height: $chip-height;
  1638. margin: $chip-margin;
  1639. padding: $chip-padding;
  1640. float: left;
  1641. box-sizing: border-box;
  1642. max-width: 100%;
  1643. position: relative;
  1644. .md-chip-content {
  1645. display: block;
  1646. padding-right:rem(0.4);
  1647. float: left;
  1648. white-space: nowrap;
  1649. max-width: 100%;
  1650. overflow: hidden;
  1651. text-overflow: ellipsis;
  1652. &:focus {
  1653. outline: none;
  1654. }
  1655. }
  1656. .md-chip-remove-container {
  1657. position: absolute;
  1658. right: 0;
  1659. line-height: $chip-remove-line-height;
  1660. }
  1661. .md-chip-remove {
  1662. text-align: center;
  1663. width: $chip-height;
  1664. height: $chip-height;
  1665. min-width: 0;
  1666. padding: 0;
  1667. background: transparent;
  1668. border: none;
  1669. box-shadow: none;
  1670. margin: 0;
  1671. position: relative;
  1672. md-icon {
  1673. height: $chip-delete-icon-size;
  1674. width: $chip-delete-icon-size;
  1675. position: absolute;
  1676. top: 50%;
  1677. left: 50%;
  1678. transform: translate3d(-50%, -50%, 0);
  1679. }
  1680. }
  1681. }
  1682. .md-chip-input-container {
  1683. display: block;
  1684. line-height: $chip-height;
  1685. margin: $chip-margin;
  1686. padding: $chip-padding;
  1687. float: left;
  1688. input {
  1689. &:not([type]),&[type="email"],&[type="number"],&[type="tel"],&[type="url"],&[type="text"] {
  1690. border: 0;
  1691. height: $chip-height;
  1692. line-height: $chip-height;
  1693. padding: 0;
  1694. &:focus {
  1695. outline: none;
  1696. }
  1697. }
  1698. }
  1699. md-autocomplete, md-autocomplete-wrap {
  1700. background: transparent;
  1701. height: $chip-height;
  1702. }
  1703. md-autocomplete {
  1704. md-autocomplete-wrap {
  1705. box-shadow: none;
  1706. }
  1707. input {
  1708. position: relative;
  1709. }
  1710. }
  1711. input {
  1712. border:0;
  1713. height: $chip-height;
  1714. line-height: $chip-height;
  1715. padding: 0;
  1716. &:focus {
  1717. outline:none;
  1718. }
  1719. }
  1720. md-autocomplete, md-autocomplete-wrap {
  1721. height: $chip-height;
  1722. }
  1723. md-autocomplete {
  1724. box-shadow: none;
  1725. input {
  1726. position: relative;
  1727. }
  1728. }
  1729. &:not(:first-child) {
  1730. margin: $chip-margin;
  1731. }
  1732. input {
  1733. background:transparent;
  1734. border-width: 0;
  1735. }
  1736. }
  1737. md-autocomplete {
  1738. button {
  1739. display: none;
  1740. }
  1741. }
  1742. }
  1743. @media screen and (-ms-high-contrast: active) {
  1744. .md-chip-input-container,
  1745. md-chip {
  1746. border: 1px solid #fff;
  1747. }
  1748. .md-chip-input-container md-autocomplete {
  1749. border: none;
  1750. }
  1751. }
  1752. md-content {
  1753. display: block;
  1754. position: relative;
  1755. overflow: auto;
  1756. -webkit-overflow-scrolling: touch;
  1757. &[md-scroll-y] {
  1758. overflow-y: auto;
  1759. overflow-x: hidden;
  1760. }
  1761. &[md-scroll-x] {
  1762. overflow-x: auto;
  1763. overflow-y: hidden;
  1764. }
  1765. &[md-scroll-xy] {
  1766. }
  1767. // For iOS allow disabling of momentum scrolling
  1768. // @see issue #2640.
  1769. &.autoScroll {
  1770. -webkit-overflow-scrolling: auto;
  1771. }
  1772. }
  1773. $dialog-padding: $baseline-grid * 3;
  1774. .md-dialog-is-showing {
  1775. max-height: 100%;
  1776. }
  1777. .md-dialog-container {
  1778. display: flex;
  1779. justify-content: center;
  1780. align-items: center;
  1781. position: absolute;
  1782. top: 0;
  1783. left: 0;
  1784. width: 100%;
  1785. height: 100%;
  1786. z-index: $z-index-dialog;
  1787. overflow: hidden;
  1788. }
  1789. md-dialog {
  1790. &.md-transition-in {
  1791. opacity: 1;
  1792. transition: $swift-ease-out;
  1793. transform: translate3d(0,0,0) scale(1.0);
  1794. }
  1795. &.md-transition-out {
  1796. opacity: 0;
  1797. transition: $swift-ease-out;
  1798. transform: translate3d(0,100%,0) scale(0.2);
  1799. }
  1800. opacity: 0;
  1801. min-width: 240px;
  1802. max-width: 80%;
  1803. max-height: 80%;
  1804. position: relative;
  1805. overflow: auto; // stop content from leaking out of dialog parent and fix IE
  1806. box-shadow: $whiteframe-shadow-13dp;
  1807. display: flex;
  1808. flex-direction: column;
  1809. &> form {
  1810. display: flex;
  1811. flex-direction: column;
  1812. overflow: auto;
  1813. }
  1814. .md-dialog-content {
  1815. padding: $dialog-padding;
  1816. }
  1817. md-dialog-content {
  1818. order: 1;
  1819. flex-direction: column;
  1820. overflow: auto;
  1821. -webkit-overflow-scrolling: touch;
  1822. &:not([layout=row]) > *:first-child:not(.md-subheader) {
  1823. margin-top: 0;
  1824. }
  1825. &:focus {
  1826. outline: none;
  1827. }
  1828. .md-subheader {
  1829. margin: 0;
  1830. &.sticky-clone {
  1831. box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16);
  1832. }
  1833. }
  1834. &.sticky-container {
  1835. padding: 0;
  1836. &> div {
  1837. padding: $dialog-padding;
  1838. padding-top: 0;
  1839. }
  1840. }
  1841. .md-dialog-content-body {
  1842. width:100%;
  1843. }
  1844. }
  1845. .md-actions {
  1846. display: flex;
  1847. order: 2;
  1848. box-sizing: border-box;
  1849. align-items: center;
  1850. justify-content: flex-end;
  1851. margin-bottom: 0;
  1852. padding-right: $baseline-grid;
  1853. padding-left: $baseline-grid * 2;
  1854. min-height: $baseline-grid * 6.5;
  1855. overflow: hidden;
  1856. .md-button {
  1857. margin-bottom: $baseline-grid;
  1858. margin-left: $baseline-grid;
  1859. margin-right: 0;
  1860. margin-top: $baseline-grid;
  1861. }
  1862. }
  1863. &.md-content-overflow .md-actions {
  1864. border-top-width: 1px;
  1865. border-top-style: solid;
  1866. }
  1867. }
  1868. @media screen and (-ms-high-contrast: active) {
  1869. md-dialog {
  1870. border: 1px solid #fff;
  1871. }
  1872. }
  1873. md-divider {
  1874. display: block;
  1875. border-top-width: 1px;
  1876. border-top-style: solid;
  1877. margin: 0;
  1878. &[md-inset] {
  1879. margin-left: $baseline-grid * 10;
  1880. }
  1881. }
  1882. /** Styles for mdCalendar. */
  1883. $md-calendar-cell-size: 44px !default;
  1884. $md-calendar-header-height: 40px;
  1885. $md-calendar-cell-emphasis-size: 40px !default;
  1886. $md-calendar-side-padding: 16px !default;
  1887. $md-calendar-weeks-to-show: 7 !default;
  1888. $md-calendar-month-label-padding: 8px !default;
  1889. $md-calendar-month-label-font-size: 14px !default;
  1890. $md-calendar-scroll-cue-shadow-radius: 6px;
  1891. $md-calendar-width: (7 * $md-calendar-cell-size) + (2 * $md-calendar-side-padding);
  1892. $md-calendar-height:
  1893. ($md-calendar-weeks-to-show * $md-calendar-cell-size) + $md-calendar-header-height;
  1894. // Styles for date cells, including day-of-the-week header cells.
  1895. @mixin md-calendar-cell() {
  1896. height: $md-calendar-cell-size;
  1897. width: $md-calendar-cell-size;
  1898. text-align: center;
  1899. // Remove all padding and borders so we can completely
  1900. // control the size of the table cells.
  1901. padding: 0;
  1902. border: none;
  1903. // The left / right padding is applied to the cells instead of the wrapper
  1904. // because we want the header background and the month dividing border to
  1905. // extend the entire width of the calendar.
  1906. &:first-child {
  1907. padding-left: $md-calendar-side-padding;
  1908. }
  1909. &:last-child {
  1910. padding-right: $md-calendar-side-padding;
  1911. }
  1912. }
  1913. // Styles for tables used in mdCalendar (the day-of-the-week header and the table of dates itself).
  1914. @mixin md-calendar-table() {
  1915. // Fixed table layout makes IE faster.
  1916. // https://msdn.microsoft.com/en-us/library/ms533020(VS.85).aspx
  1917. table-layout: fixed;
  1918. border-spacing: 0;
  1919. border-collapse: collapse;
  1920. }
  1921. md-calendar {
  1922. font-size: 13px;
  1923. user-select: none;
  1924. }
  1925. // Wrap the scroll with overflow: hidden in order to hide the scrollbar.
  1926. // The inner .md-calendar-scroll-container will using a padding-right to push the
  1927. // scrollbar into the hidden area (done with javascript).
  1928. .md-calendar-scroll-mask {
  1929. display: inline-block;
  1930. overflow: hidden;
  1931. height: $md-calendar-weeks-to-show * $md-calendar-cell-size;
  1932. // The actual scrolling element.
  1933. .md-virtual-repeat-scroller {
  1934. // These two properties are needed to get touch momentum to work.
  1935. // See https://css-tricks.com/snippets/css/momentum-scrolling-on-ios-overflow-elements
  1936. overflow-y: scroll;
  1937. -webkit-overflow-scrolling: touch;
  1938. &::-webkit-scrollbar {
  1939. display: none;
  1940. }
  1941. }
  1942. // Offsetter is the element that is translateY'ed into view of the user and contains the
  1943. // calendar content.
  1944. .md-virtual-repeat-offsetter {
  1945. width: 100%;
  1946. }
  1947. }
  1948. // Contains the scrolling element (this is the md-virtual-repeat-container).
  1949. .md-calendar-scroll-container {
  1950. // Add an inset shadow to help cue users that the calendar is scrollable. Use a negative x
  1951. // offset to push the vertical edge shadow off to the right so that it's cut off by the edge
  1952. // of the calendar container.
  1953. box-shadow: inset -3px 3px $md-calendar-scroll-cue-shadow-radius rgba(black, 0.2);
  1954. display: inline-block;
  1955. height: $md-calendar-weeks-to-show * $md-calendar-cell-size;
  1956. // Add the shadow radius to the width so that the shadow os pushed off to the side and cut off.
  1957. width: $md-calendar-width + $md-calendar-scroll-cue-shadow-radius;
  1958. }
  1959. // A single date cell in the calendar table.
  1960. .md-calendar-date {
  1961. @include md-calendar-cell();
  1962. &.md-calendar-date-disabled {
  1963. cursor: default;
  1964. }
  1965. }
  1966. // Circle element inside of every date cell used to indicate selection or focus.
  1967. .md-calendar-date-selection-indicator {
  1968. transition: background-color, color $swift-ease-out-duration $swift-ease-out-timing-function;
  1969. border-radius: 50%;
  1970. display: inline-block;
  1971. width: $md-calendar-cell-emphasis-size;
  1972. height: $md-calendar-cell-emphasis-size;
  1973. line-height: $md-calendar-cell-emphasis-size;
  1974. .md-calendar-date:not(.md-disabled) & {
  1975. cursor: pointer;
  1976. }
  1977. }
  1978. // The label above each month (containing the month name and the year, e.g. "Jun 2014").
  1979. .md-calendar-month-label {
  1980. height: $md-calendar-cell-size;
  1981. font-size: $md-calendar-month-label-font-size;
  1982. font-weight: 500; // Roboto Medium
  1983. padding: 0 0 0 $md-calendar-side-padding + $md-calendar-month-label-padding;
  1984. }
  1985. // Table containing the day-of-the-week header.
  1986. .md-calendar-day-header {
  1987. @include md-calendar-table();
  1988. th {
  1989. @include md-calendar-cell();
  1990. font-weight: normal;
  1991. height: $md-calendar-header-height;
  1992. }
  1993. }
  1994. // Primary table containing all date cells. Each month is a tbody in this table.
  1995. .md-calendar {
  1996. @include md-calendar-table();
  1997. // Divider between months.
  1998. tr:last-child td {
  1999. border-bottom-width: 1px;
  2000. border-bottom-style: solid;
  2001. }
  2002. // The divider between months doesn't actually change the height of the tbody in which the
  2003. // border appear; it changes the height of the following tbody. The causes the first-child to be
  2004. // 1px shorter than the other months. We fix this by adding an invisible border-top.
  2005. &:first-child {
  2006. border-top: 1px solid transparent;
  2007. }
  2008. }
  2009. /** Styles for mdDatepicker. */
  2010. $md-datepicker-button-gap: 12px; // Space between the text input and the calendar-icon button.
  2011. $md-datepicker-border-bottom-gap: 5px; // Space between input and the grey underline.
  2012. $md-datepicker-open-animation-duration: 0.2s;
  2013. md-datepicker {
  2014. // Don't let linebreaks happen between the open icon-button and the input.
  2015. white-space: nowrap;
  2016. }
  2017. // The calendar icon button used to open the calendar pane.
  2018. // Need absurd specificty to override md-button.md-icon-button.
  2019. .md-datepicker-button {
  2020. display: inline-block;
  2021. box-sizing: border-box;
  2022. background: none;
  2023. }
  2024. // The input into which the user can type the date.
  2025. .md-datepicker-input {
  2026. @include md-flat-input();
  2027. min-width: 120px;
  2028. max-width: $md-calendar-width - $md-datepicker-button-gap;
  2029. }
  2030. // Container for the datepicker input.
  2031. .md-datepicker-input-container {
  2032. // Position relative in order to absolutely position the down-triangle button within.
  2033. position: relative;
  2034. padding-bottom: $md-datepicker-border-bottom-gap;
  2035. border-bottom-width: 1px;
  2036. border-bottom-style: solid;
  2037. display: inline-block;
  2038. width: auto;
  2039. margin-left: $md-datepicker-button-gap;
  2040. &.md-datepicker-focused {
  2041. border-bottom-width: 2px;
  2042. }
  2043. }
  2044. // Floating pane that contains the calendar at the bottom of the input.
  2045. .md-datepicker-calendar-pane {
  2046. position: absolute;
  2047. top: 0;
  2048. left: 0;
  2049. z-index: $z-index-menu;
  2050. border-width: 1px;
  2051. border-style: solid;
  2052. background: transparent;
  2053. transform: scale(0);
  2054. transform-origin: 0 0;
  2055. transition: transform $md-datepicker-open-animation-duration $swift-ease-out-timing-function;
  2056. &.md-pane-open {
  2057. transform: scale(1);
  2058. }
  2059. }
  2060. // Portion of the floating panel that sits, invisibly, on top of the input.
  2061. .md-datepicker-input-mask {
  2062. height: 40px;
  2063. width: $md-calendar-width;
  2064. position: relative;
  2065. background: transparent;
  2066. pointer-events: none;
  2067. cursor: text;
  2068. }
  2069. .md-datepicker-input-mask-opaque {
  2070. position: absolute;
  2071. right: 0;
  2072. left: 120px;
  2073. height: 100%;
  2074. }
  2075. // The calendar portion of the floating pane (vs. the input mask).
  2076. .md-datepicker-calendar {
  2077. opacity: 0;
  2078. // Use a modified timing function (from swift-ease-out) so that the opacity part of the
  2079. // animation doesn't come in as quickly so that the floating pane doesn't ever seem to
  2080. // cover up the trigger input.
  2081. transition: opacity $md-datepicker-open-animation-duration cubic-bezier(0.5, 0, 0.25, 1);
  2082. .md-pane-open & {
  2083. opacity: 1;
  2084. }
  2085. md-calendar:focus {
  2086. outline: none;
  2087. }
  2088. }
  2089. // Down triangle/arrow indicating that the datepicker can be opened.
  2090. // We can do this entirely with CSS without needing to load an icon.
  2091. // See https://css-tricks.com/snippets/css/css-triangle/
  2092. $md-date-arrow-size: 5px;
  2093. .md-datepicker-expand-triangle {
  2094. // Center the triangle inside of the button so that the
  2095. // ink ripple origin looks correct.
  2096. position: absolute;
  2097. top: 50%;
  2098. left: 50%;
  2099. transform: translate(-50%, -50%);
  2100. width: 0;
  2101. height: 0;
  2102. border-left: $md-date-arrow-size solid transparent;
  2103. border-right: $md-date-arrow-size solid transparent;
  2104. border-top: $md-date-arrow-size solid;
  2105. }
  2106. // Button containing the down "disclosure" triangle/arrow.
  2107. .md-datepicker-triangle-button {
  2108. position: absolute;
  2109. right: 0;
  2110. top: 0;
  2111. // TODO(jelbourn): This position isn't great on all platforms.
  2112. transform: translateY(-25%) translateX(45%);
  2113. }
  2114. // Need crazy specificity to override .md-button.md-icon-button.
  2115. // Only apply this high specifiy to the property we need to override.
  2116. .md-datepicker-triangle-button.md-button.md-icon-button {
  2117. height: 100%;
  2118. width: 36px;
  2119. position: absolute;
  2120. }
  2121. // Disabled state for all elements of the picker.
  2122. md-datepicker[disabled] {
  2123. .md-datepicker-input-container {
  2124. border-bottom-color: transparent;
  2125. }
  2126. .md-datepicker-triangle-button {
  2127. display: none;
  2128. }
  2129. }
  2130. // Open state for all of the elements of the picker.
  2131. .md-datepicker-open {
  2132. .md-datepicker-input-container {
  2133. margin-left: -$md-datepicker-button-gap;
  2134. border: none;
  2135. }
  2136. .md-datepicker-input {
  2137. margin-left: 24px;
  2138. height: 40px;
  2139. }
  2140. .md-datepicker-triangle-button {
  2141. display: none;
  2142. }
  2143. }
  2144. // When the position of the floating calendar pane is adjusted to remain inside
  2145. // of the viewport, hide the inputput mask, as the text input will no longer be
  2146. // directly underneath it.
  2147. .md-datepicker-pos-adjusted .md-datepicker-input-mask {
  2148. display: none;
  2149. }
  2150. // Animate the calendar inside of the floating calendar pane such that it appears to "scroll" into
  2151. // view while the pane is opening. This is done as a cue to users that the calendar is scrollable.
  2152. .md-datepicker-calendar-pane {
  2153. .md-calendar {
  2154. transform: translateY(-85px);
  2155. transition: transform 0.65s $swift-ease-out-timing-function;
  2156. transition-delay: 0.125s;
  2157. }
  2158. &.md-pane-open .md-calendar {
  2159. transform: translateY(0);
  2160. }
  2161. }
  2162. md-fab-speed-dial {
  2163. position: relative;
  2164. display: flex;
  2165. align-items: center;
  2166. // Include the top/left/bottom/right fab positions and set the z-index for absolute positioning
  2167. @include fab-all-positions();
  2168. z-index: $z-index-fab;
  2169. // Allow users to enable/disable hovering over the entire speed dial (i.e. the empty space where
  2170. // items will eventually appear)
  2171. &:not(.md-hover-full) {
  2172. // Turn off pointer events when closed
  2173. pointer-events: none;
  2174. md-fab-trigger, .md-fab-action-item {
  2175. // Always make the trigger and action items always have pointer events (the tooltip looks
  2176. // for the first parent with pointer-events, so we must set this for tooltips to work)
  2177. pointer-events: auto;
  2178. }
  2179. &.md-is-open {
  2180. // Turn on pointer events when open
  2181. pointer-events: auto;
  2182. }
  2183. }
  2184. .md-css-variables {
  2185. z-index: $z-index-fab;
  2186. }
  2187. &.md-is-open {
  2188. .md-fab-action-item {
  2189. visibility: visible;
  2190. align-items: center;
  2191. }
  2192. }
  2193. md-fab-actions {
  2194. display: flex;
  2195. // Set the height so that the z-index in the JS animation works
  2196. height: auto;
  2197. .md-fab-action-item {
  2198. visibility: hidden;
  2199. transition: $swift-ease-in;
  2200. }
  2201. }
  2202. &.md-down {
  2203. flex-direction: column;
  2204. md-fab-trigger {
  2205. order: 1;
  2206. }
  2207. md-fab-actions {
  2208. flex-direction: column;
  2209. order: 2;
  2210. }
  2211. }
  2212. &.md-up {
  2213. flex-direction: column;
  2214. md-fab-trigger {
  2215. order: 2;
  2216. }
  2217. md-fab-actions {
  2218. flex-direction: column-reverse;
  2219. order: 1;
  2220. }
  2221. }
  2222. &.md-left {
  2223. flex-direction: row;
  2224. md-fab-trigger {
  2225. order: 2;
  2226. }
  2227. md-fab-actions {
  2228. flex-direction: row-reverse;
  2229. order: 1;
  2230. .md-fab-action-item {
  2231. transition: $swift-ease-in;
  2232. }
  2233. }
  2234. }
  2235. &.md-right {
  2236. flex-direction: row;
  2237. md-fab-trigger {
  2238. order: 1;
  2239. }
  2240. md-fab-actions {
  2241. flex-direction: row;
  2242. order: 2;
  2243. .md-fab-action-item {
  2244. transition: $swift-ease-in;
  2245. }
  2246. }
  2247. }
  2248. /*
  2249. * Handle the animations
  2250. */
  2251. &.md-scale {
  2252. .md-fab-action-item {
  2253. opacity: 0;
  2254. transform: scale(0);
  2255. transition: $swift-ease-in;
  2256. // Make the scale animation a bit faster since we are delaying each item
  2257. transition-duration: $swift-ease-in-duration / 2.1;
  2258. }
  2259. }
  2260. }
  2261. $button-fab-width: rem(5.600) !default;
  2262. $icon-button-margin: rem(0.600) !default;
  2263. md-fab-toolbar {
  2264. $icon-delay: 200ms;
  2265. // Include the top/left/bottom/right fab positions
  2266. @include fab-all-positions();
  2267. display: block;
  2268. /*
  2269. * Closed styling
  2270. */
  2271. .md-fab-toolbar-wrapper {
  2272. display: block;
  2273. position: relative;
  2274. overflow: hidden;
  2275. // Account for the size of the trigger plus it's margin/shadow
  2276. height: $button-fab-width + ($icon-button-margin * 2);
  2277. }
  2278. md-fab-trigger {
  2279. position: absolute;
  2280. z-index: $z-index-fab;
  2281. button {
  2282. overflow: visible !important;
  2283. }
  2284. .md-fab-toolbar-background {
  2285. display: block;
  2286. position: absolute;
  2287. z-index: $z-index-fab + 1;
  2288. opacity: 1;
  2289. transition: $swift-ease-in;
  2290. }
  2291. md-icon {
  2292. position: relative;
  2293. z-index: $z-index-fab + 2;
  2294. opacity: 1;
  2295. // Hide the icon very quickly
  2296. transition: all $icon-delay ease-in;
  2297. }
  2298. }
  2299. &.md-left {
  2300. md-fab-trigger {
  2301. right: 0;
  2302. }
  2303. .md-toolbar-tools {
  2304. flex-direction: row-reverse;
  2305. > .md-button:first-child {
  2306. margin-right: 0.6rem;
  2307. }
  2308. > .md-button:first-child {
  2309. margin-left: -0.8rem;
  2310. }
  2311. > .md-button:last-child {
  2312. margin-right: 8px;
  2313. }
  2314. }
  2315. }
  2316. &.md-right {
  2317. md-fab-trigger {
  2318. left: 0;
  2319. }
  2320. .md-toolbar-tools {
  2321. flex-direction: row;
  2322. }
  2323. }
  2324. md-toolbar {
  2325. background-color: transparent !important;
  2326. pointer-events: none;
  2327. z-index: $z-index-fab + 3;
  2328. .md-toolbar-tools {
  2329. // Fix some spacing issues with the icons and the trigger
  2330. padding: 0 20px;
  2331. margin-top: 3px;
  2332. }
  2333. .md-fab-action-item {
  2334. opacity: 0;
  2335. transform: scale(0);
  2336. transition: $swift-ease-in;
  2337. // Cut the action item's animation time in half since we delay it in the JS
  2338. transition-duration: $swift-ease-in-duration / 2;
  2339. }
  2340. }
  2341. /*
  2342. * Hover styling
  2343. */
  2344. &.md-is-open {
  2345. md-fab-trigger > button {
  2346. box-shadow: none;
  2347. md-icon {
  2348. opacity: 0;
  2349. }
  2350. }
  2351. .md-fab-action-item {
  2352. opacity: 1;
  2353. transform: scale(1);
  2354. }
  2355. }
  2356. }
  2357. md-grid-list {
  2358. box-sizing: border-box;
  2359. display: block;
  2360. position: relative;
  2361. md-grid-tile,
  2362. md-grid-tile > figure,
  2363. md-grid-tile-header,
  2364. md-grid-tile-footer {
  2365. box-sizing: border-box;
  2366. }
  2367. md-grid-tile {
  2368. display: block;
  2369. position: absolute;
  2370. figure {
  2371. display: flex;
  2372. align-items: center;
  2373. justify-content: center;
  2374. height: 100%;
  2375. position: absolute;
  2376. top: 0;
  2377. right: 0;
  2378. bottom: 0;
  2379. left: 0;
  2380. padding: 0;
  2381. margin: 0;
  2382. }
  2383. // Headers & footers
  2384. md-grid-tile-header,
  2385. md-grid-tile-footer {
  2386. display: flex;
  2387. flex-direction: row;
  2388. align-items: center;
  2389. height: 48px;
  2390. color: #fff;
  2391. background: rgba(0, 0, 0, 0.18);
  2392. overflow: hidden;
  2393. // Positioning
  2394. position: absolute;
  2395. left: 0;
  2396. right: 0;
  2397. h3,
  2398. h4 {
  2399. font-weight: 400;
  2400. margin: 0 0 0 16px;
  2401. }
  2402. h3 {
  2403. font-size: 14px;
  2404. }
  2405. h4 {
  2406. font-size: 12px;
  2407. }
  2408. }
  2409. md-grid-tile-header {
  2410. top: 0;
  2411. }
  2412. md-grid-tile-footer {
  2413. bottom: 0;
  2414. }
  2415. }
  2416. }
  2417. @media screen and (-ms-high-contrast: active) {
  2418. md-grid-tile {
  2419. border: 1px solid #fff;
  2420. }
  2421. md-grid-tile-footer {
  2422. border-top: 1px solid #fff;
  2423. }
  2424. }
  2425. $icon-size: rem(2.4);
  2426. md-icon {
  2427. margin: auto;
  2428. background-repeat: no-repeat no-repeat;
  2429. display: inline-block;
  2430. vertical-align: middle;
  2431. fill: currentColor;
  2432. height: $icon-size;
  2433. width: $icon-size;
  2434. svg {
  2435. pointer-events: none;
  2436. }
  2437. &[md-font-icon] {
  2438. line-height: 1;
  2439. width: auto;
  2440. }
  2441. }
  2442. //
  2443. //@font-face {
  2444. // font-family:"material";
  2445. // src:url("/dist/material-font/material.eot");
  2446. // font-weight:normal;
  2447. // font-style:normal;
  2448. //}
  2449. //
  2450. //@font-face {
  2451. // font-family:"material";
  2452. // src:url("/dist/material-font/material.eot");
  2453. // src:url("/dist/material-font/material.eot?#iefix") format("embedded-opentype"),
  2454. // url("/dist/material-font/material.woff") format("woff"),
  2455. // url("/dist/material-font/material.ttf") format("truetype"),
  2456. // url("/dist/material-font/material.svg?#material") format("svg");
  2457. // font-weight:normal;
  2458. // font-style:normal;
  2459. //}
  2460. //
  2461. ///* Bootstrap Overrides */
  2462. //[class^="icon-"]:before,
  2463. //[class*=" icon-"]:before {
  2464. // font-family:"material";
  2465. // display:inline-block;
  2466. // vertical-align:middle;
  2467. // line-height:1;
  2468. // font-weight:normal;
  2469. // font-style:normal;
  2470. // speak:none;
  2471. // text-decoration:inherit;
  2472. // text-transform:none;
  2473. // text-rendering:optimizeLegibility;
  2474. // -webkit-font-smoothing:antialiased;
  2475. // -moz-osx-font-smoothing:grayscale;
  2476. //}
  2477. $input-container-padding: 2px !default;
  2478. $input-label-default-offset: 24px !default;
  2479. $input-label-default-scale: 1.0 !default;
  2480. $input-label-float-offset: 6px !default;
  2481. $input-label-float-scale: 0.75 !default;
  2482. $input-placeholder-offset: $input-label-default-offset !default;
  2483. $input-border-width-default: 1px !default;
  2484. $input-border-width-focused: 2px !default;
  2485. $input-line-height: 26px !default;
  2486. $input-padding-top: 2px !default;
  2487. $input-error-font-size: 12px !default;
  2488. $input-error-height: 24px !default;
  2489. $icon-offset : 36px !default;
  2490. $icon-float-top: -16px !default;
  2491. $icon-float-focused-top: -8px !default;
  2492. md-input-container {
  2493. display: flex;
  2494. position: relative;
  2495. flex-direction: column;
  2496. padding: $input-container-padding;
  2497. padding-bottom: $input-container-padding + $input-error-height;
  2498. // When we have ng-messages, remove the input error height from our bottom padding, since the
  2499. // ng-messages wrapper has a min-height of 1 error (so we don't adjust height as often; see below)
  2500. &.md-input-has-messages {
  2501. padding-bottom: $input-container-padding;
  2502. }
  2503. > md-icon {
  2504. position: absolute;
  2505. top: 5px;
  2506. left: 2px;
  2507. + input {
  2508. margin-left: $icon-offset;
  2509. }
  2510. }
  2511. textarea,
  2512. input[type="text"],
  2513. input[type="password"],
  2514. input[type="datetime"],
  2515. input[type="datetime-local"],
  2516. input[type="date"],
  2517. input[type="month"],
  2518. input[type="time"],
  2519. input[type="week"],
  2520. input[type="number"],
  2521. input[type="email"],
  2522. input[type="url"],
  2523. input[type="search"],
  2524. input[type="tel"],
  2525. input[type="color"] {
  2526. /* remove default appearance from all input/textarea */
  2527. -moz-appearance: none;
  2528. -webkit-appearance: none;
  2529. }
  2530. input[type="date"],
  2531. input[type="datetime-local"],
  2532. input[type="month"],
  2533. input[type="time"],
  2534. input[type="week"] {
  2535. min-height: $input-line-height;
  2536. }
  2537. textarea {
  2538. resize: none;
  2539. overflow: hidden;
  2540. }
  2541. textarea.md-input {
  2542. min-height: $input-line-height;
  2543. -ms-flex-preferred-size: auto; //IE fix
  2544. }
  2545. label {
  2546. position: relative;
  2547. top: -2px;
  2548. }
  2549. label:not(.md-no-float),
  2550. .md-placeholder {
  2551. order: 1;
  2552. pointer-events: none;
  2553. -webkit-font-smoothing: antialiased;
  2554. padding-left: $input-container-padding;
  2555. z-index: 1;
  2556. transform: translate3d(0, $input-label-default-offset + 4, 0) scale($input-label-default-scale);
  2557. transition: transform $swift-ease-out-timing-function 0.25s;
  2558. @include rtl(transform-origin, left top, right top);
  2559. }
  2560. .md-placeholder {
  2561. position: absolute;
  2562. top: 0;
  2563. opacity: 0;
  2564. transition-property: opacity, transform;
  2565. transform: translate3d(0, $input-placeholder-offset + $baseline-grid * 0.75, 0);
  2566. &.md-static {
  2567. position: static;
  2568. }
  2569. }
  2570. &.md-input-focused .md-placeholder {
  2571. opacity: 1;
  2572. transform: translate3d(0, $input-placeholder-offset, 0);
  2573. }
  2574. // Placeholder should immediately disappear when the user starts typing
  2575. &.md-input-has-value .md-placeholder {
  2576. transition: none;
  2577. opacity: 0;
  2578. }
  2579. &:not( .md-input-has-value ) input:not( :focus ),
  2580. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-ampm-field,
  2581. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-day-field,
  2582. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-hour-field,
  2583. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-millisecond-field,
  2584. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-minute-field,
  2585. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-month-field,
  2586. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-second-field,
  2587. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-week-field,
  2588. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-year-field,
  2589. &:not( .md-input-has-value ) input:not( :focus )::-webkit-datetime-edit-text {
  2590. color: transparent;
  2591. }
  2592. /*
  2593. * The .md-input class is added to the input/textarea
  2594. */
  2595. .md-input {
  2596. order: 2;
  2597. display: block;
  2598. margin-top: 0;
  2599. background: none;
  2600. padding-top: $input-padding-top;
  2601. padding-bottom: $input-border-width-focused - $input-border-width-default;
  2602. padding-left: 2px;
  2603. padding-right: 2px;
  2604. border-width: 0 0 $input-border-width-default 0;
  2605. line-height: $input-line-height;
  2606. -ms-flex-preferred-size: $input-line-height; //IE fix
  2607. border-radius: 0;
  2608. border-style: solid; // Firefox fix
  2609. // Fix number inputs in Firefox to be full-width
  2610. width: auto;
  2611. &:focus {
  2612. outline: none;
  2613. }
  2614. &:invalid {
  2615. outline: none;
  2616. box-shadow: none;
  2617. }
  2618. &.md-no-flex {
  2619. flex: none !important;
  2620. }
  2621. }
  2622. .md-char-counter {
  2623. position: absolute;
  2624. right: $input-container-padding;
  2625. bottom: 7px;
  2626. }
  2627. ng-messages, data-ng-messages, x-ng-messages,
  2628. [ng-messages], [data-ng-messages], [x-ng-messages] {
  2629. position: relative;
  2630. order: 4;
  2631. min-height: $input-error-height;
  2632. .md-char-counter {
  2633. position: absolute;
  2634. top: 0;
  2635. right: 0;
  2636. bottom: auto;
  2637. }
  2638. }
  2639. ng-message, data-ng-message, x-ng-message,
  2640. [ng-message], [data-ng-message], [x-ng-message],
  2641. [ng-message-exp], [data-ng-message-exp], [x-ng-message-exp],
  2642. .md-char-counter {
  2643. $input-error-line-height: $input-error-font-size + 2px;
  2644. //-webkit-font-smoothing: antialiased;
  2645. font-size: $input-error-font-size;
  2646. line-height: $input-error-line-height;
  2647. overflow: hidden;
  2648. // Add some top padding which is equal to half the difference between the expected height
  2649. // and the actual height
  2650. $error-padding-top: ($input-error-height - $input-error-line-height) / 2;
  2651. padding-top: $error-padding-top;
  2652. &:not(.md-char-counter) {
  2653. padding-right: rem(5);
  2654. }
  2655. &.ng-enter {
  2656. transition: $swift-ease-in;
  2657. // Delay the enter transition so it happens after the leave
  2658. transition-delay: $swift-ease-in-duration / 1.5;
  2659. // Since we're delaying the transition, we speed up the duration a little bit to compensate
  2660. transition-duration: $swift-ease-in-duration / 1.5;
  2661. }
  2662. &.ng-leave {
  2663. transition: $swift-ease-out;
  2664. // Speed up the duration (see enter comment above)
  2665. transition-duration: $swift-ease-out-duration / 1.5;
  2666. }
  2667. &.ng-enter,
  2668. &.ng-leave.ng-leave-active {
  2669. // Move the error upwards off the screen and fade it out
  2670. margin-top: -$input-error-line-height - $error-padding-top;
  2671. opacity: 0;
  2672. }
  2673. &.ng-leave,
  2674. &.ng-enter.ng-enter-active {
  2675. // Move the error down into position and fade it in
  2676. margin-top: 0;
  2677. opacity: 1;
  2678. }
  2679. }
  2680. &.md-input-focused,
  2681. &.md-input-has-placeholder,
  2682. &.md-input-has-value {
  2683. label:not(.md-no-float) {
  2684. transform: translate3d(0,$input-label-float-offset,0) scale($input-label-float-scale);
  2685. }
  2686. }
  2687. // If we have an existing value; don't animate the transform as it happens on page load and
  2688. // causes erratic/unnecessary animation
  2689. &.md-input-has-value {
  2690. label {
  2691. transition: none;
  2692. }
  2693. }
  2694. // Use wide border in error state or in focused state
  2695. &.md-input-focused .md-input,
  2696. .md-input.ng-invalid.ng-dirty {
  2697. padding-bottom: 0; // Increase border width by 1px, decrease padding by 1
  2698. border-width: 0 0 $input-border-width-focused 0;
  2699. }
  2700. .md-input {
  2701. &[disabled],
  2702. [disabled] & {
  2703. background-position: 0 bottom;
  2704. // This background-size is coordinated with a linear-gradient set in input-theme.scss
  2705. // to create a dotted line under the input.
  2706. background-size: 4px 1px;
  2707. background-repeat: repeat-x;
  2708. margin-bottom: -1px; // Shift downward so dotted line is positioned the same as other bottom borders
  2709. }
  2710. }
  2711. }
  2712. md-input-container.md-icon-float {
  2713. margin-top : $icon-float-top;
  2714. transition : margin-top 0.5s $swift-ease-out-timing-function ;
  2715. > label {
  2716. pointer-events:none;
  2717. position:absolute;
  2718. margin-left: $icon-offset;
  2719. }
  2720. > md-icon {
  2721. top: 26px;
  2722. left: 2px;
  2723. + input,
  2724. + textarea {
  2725. margin-left: $icon-offset;
  2726. }
  2727. }
  2728. > input,
  2729. > textarea {
  2730. padding-top : $input-line-height - $input-container-padding;
  2731. }
  2732. &.md-input-focused,
  2733. &.md-input-has-value {
  2734. margin-top: $icon-float-focused-top;
  2735. label {
  2736. transform: translate3d(0,$input-label-float-offset,0) scale($input-label-float-scale);
  2737. transition: transform $swift-ease-out-timing-function 0.5s;
  2738. }
  2739. }
  2740. }
  2741. md-input-container.md-icon-right {
  2742. input {
  2743. margin-right: $icon-offset;
  2744. + md-icon {
  2745. top: 26px;
  2746. right: 2px;
  2747. margin-right: 0;
  2748. }
  2749. }
  2750. }
  2751. @media screen and (-ms-high-contrast: active) {
  2752. md-input-container.md-default-theme > md-icon {
  2753. fill: #fff;
  2754. }
  2755. }
  2756. $list-h3-margin: 0 0 0px 0 !default;
  2757. $list-h4-margin: 3px 0 1px 0 !default;
  2758. $list-h4-font-weight: 400 !default;
  2759. $list-header-line-height: 1.2em !default;
  2760. $list-p-margin: 0 0 0 0 !default;
  2761. $list-p-line-height: 1.6em !default;
  2762. $list-padding-top: $baseline-grid !default;
  2763. $list-padding-right: 0px !default;
  2764. $list-padding-left: 0px !default;
  2765. $list-padding-bottom: $baseline-grid !default;
  2766. $item-padding-top: 0px !default;
  2767. $item-padding-right: 0px !default;
  2768. $item-padding-left: 0px !default;
  2769. $item-padding-bottom: 0px !default;
  2770. $list-item-padding-vertical: 0px !default;
  2771. $list-item-padding-horizontal: $baseline-grid * 2 !default;
  2772. $list-item-primary-width: $baseline-grid * 7 !default;
  2773. $list-item-primary-avatar-width: $baseline-grid * 5 !default;
  2774. $list-item-primary-icon-width: $baseline-grid * 3 !default;
  2775. $list-item-secondary-left-margin: $baseline-grid * 2 !default;
  2776. $list-item-secondary-button-width: $baseline-grid * 6 !default;
  2777. $list-item-inset-divider-offset: 12 * $baseline-grid !default;
  2778. $list-item-height: 6 * $baseline-grid !default;
  2779. $list-item-two-line-height: 9 * $baseline-grid !default;
  2780. $list-item-three-line-height: 11 * $baseline-grid !default;
  2781. md-list {
  2782. display: block;
  2783. padding: $list-padding-top $list-padding-right $list-padding-bottom $list-padding-left;
  2784. .md-subheader {
  2785. font-size: $body-font-size-base;
  2786. font-weight: 500;
  2787. letter-spacing: 0.010em;
  2788. line-height: $list-header-line-height;
  2789. }
  2790. }
  2791. md-list-item {
  2792. &.md-proxy-focus.md-focused .md-no-style {
  2793. transition: background-color 0.15s linear;
  2794. }
  2795. &.md-no-proxy,
  2796. .md-no-style {
  2797. position: relative;
  2798. padding: $list-item-padding-vertical $list-item-padding-horizontal;
  2799. flex: 1 1 auto;
  2800. &.md-button {
  2801. font-size: inherit;
  2802. height: inherit;
  2803. text-align: left;
  2804. text-transform: none;
  2805. width: 100%;
  2806. white-space: normal;
  2807. flex-direction: inherit;
  2808. align-items: inherit;
  2809. }
  2810. &:focus {
  2811. outline: none
  2812. }
  2813. }
  2814. &.md-with-secondary {
  2815. position: relative;
  2816. }
  2817. &.md-clickable:hover {
  2818. cursor: pointer;
  2819. }
  2820. md-divider {
  2821. position: absolute;
  2822. bottom: 0;
  2823. left: 0;
  2824. width: 100%;
  2825. &[md-inset] {
  2826. left: $list-item-inset-divider-offset;
  2827. width: calc(100% - #{$list-item-inset-divider-offset});
  2828. margin: 0;
  2829. }
  2830. }
  2831. }
  2832. md-list-item, md-list-item .md-list-item-inner {
  2833. display: flex;
  2834. justify-content: flex-start;
  2835. align-items: center;
  2836. min-height: $list-item-height;
  2837. height:auto;
  2838. // Layout for controls in primary or secondary divs, or auto-infered first child
  2839. & > div.md-primary > md-icon:not(.md-avatar-icon),
  2840. & > div.md-secondary > md-icon:not(.md-avatar-icon),
  2841. & > md-icon:first-child:not(.md-avatar-icon),
  2842. > md-icon.md-secondary:not(.md-avatar-icon) {
  2843. width: $list-item-primary-icon-width;
  2844. margin-top: 16px;
  2845. margin-bottom: 12px;
  2846. box-sizing: content-box;
  2847. }
  2848. & > div.md-primary > md-checkbox,
  2849. & > div.md-secondary > md-checkbox,
  2850. & > md-checkbox:first-child,
  2851. md-checkbox.md-secondary {
  2852. align-self: center;
  2853. .md-label { display: none; }
  2854. }
  2855. & > md-icon:first-child:not(.md-avatar-icon) {
  2856. margin-right: $list-item-primary-width - $list-item-primary-icon-width;
  2857. }
  2858. & > md-checkbox:first-child {
  2859. width: 3 * $baseline-grid;
  2860. margin-left: 3px;
  2861. margin-right: 29px;
  2862. }
  2863. & > .md-avatar, .md-avatar-icon {
  2864. margin-top: $baseline-grid;
  2865. margin-bottom: $baseline-grid;
  2866. margin-right: $list-item-primary-width - $list-item-primary-avatar-width;
  2867. border-radius: 50%;
  2868. box-sizing: content-box;
  2869. }
  2870. & > .md-avatar {
  2871. width: $list-item-primary-avatar-width;
  2872. height: $list-item-primary-avatar-width;
  2873. }
  2874. & > .md-avatar-icon {
  2875. padding: 8px;
  2876. }
  2877. md-checkbox.md-secondary,
  2878. md-switch.md-secondary {
  2879. margin-right: 0;
  2880. margin-top: 0;
  2881. margin-bottom: 0;
  2882. }
  2883. button.md-button.md-secondary-container {
  2884. background-color: transparent;
  2885. align-self: center;
  2886. border-radius: 50%;
  2887. margin: 0px;
  2888. min-width: 0px;
  2889. .md-ripple,
  2890. .md-ripple-container {
  2891. border-radius: 50%;
  2892. }
  2893. }
  2894. .md-secondary-container,
  2895. .md-secondary {
  2896. margin-left: $list-item-secondary-left-margin;
  2897. position: absolute;
  2898. right: $list-item-padding-horizontal;
  2899. top: 50%;
  2900. transform: translate3d(0, -50%, 0);
  2901. }
  2902. & > .md-button.md-secondary-container > .md-secondary {
  2903. margin-left: 0px;
  2904. position: static;
  2905. }
  2906. & > p, & > .md-list-item-inner > p {
  2907. flex: 1;
  2908. margin: 0;
  2909. }
  2910. }
  2911. md-list-item.md-2-line,
  2912. md-list-item.md-2-line > .md-no-style,
  2913. md-list-item.md-3-line,
  2914. md-list-item.md-3-line > .md-no-style {
  2915. align-items: flex-start;
  2916. justify-content: center;
  2917. .md-list-item-text {
  2918. flex: 1;
  2919. margin: auto;
  2920. text-overflow: ellipsis;
  2921. &.md-offset {
  2922. margin-left: $list-item-primary-width;
  2923. }
  2924. h3 {
  2925. font-size: $subhead-font-size-base;
  2926. font-weight: 400;
  2927. letter-spacing: 0.010em;
  2928. margin: $list-h3-margin;
  2929. line-height: $list-header-line-height;
  2930. overflow: hidden;
  2931. white-space: nowrap;
  2932. text-overflow: ellipsis;
  2933. }
  2934. h4 {
  2935. font-size: $body-font-size-base;
  2936. letter-spacing: 0.010em;
  2937. margin: $list-h4-margin;
  2938. font-weight: $list-h4-font-weight;
  2939. line-height: $list-header-line-height;
  2940. overflow: hidden;
  2941. white-space: nowrap;
  2942. text-overflow: ellipsis;
  2943. }
  2944. p {
  2945. font-size: $body-font-size-base;
  2946. font-weight: 500;
  2947. letter-spacing: 0.010em;
  2948. margin: $list-p-margin;
  2949. line-height: $list-p-line-height;
  2950. }
  2951. }
  2952. }
  2953. md-list-item.md-2-line,
  2954. md-list-item.md-2-line > .md-no-style {
  2955. height:auto;
  2956. min-height: $list-item-two-line-height;
  2957. &.md-long-text {
  2958. margin:1.6em;
  2959. }
  2960. > .md-avatar, .md-avatar-icon {
  2961. margin-top: $baseline-grid * 1.5;
  2962. }
  2963. > md-icon:first-child {
  2964. align-self: flex-start;
  2965. }
  2966. .md-list-item-text {
  2967. flex: 1;
  2968. }
  2969. }
  2970. md-list-item.md-3-line,
  2971. md-list-item.md-3-line > .md-no-style {
  2972. height:auto;
  2973. min-height: $list-item-three-line-height;
  2974. &.md-long-text {
  2975. margin:1.6em;
  2976. }
  2977. > md-icon:first-child,
  2978. > .md-avatar {
  2979. margin-top: $baseline-grid * 2;
  2980. }
  2981. }
  2982. $menu-border-radius: 2px;
  2983. $max-visible-items: 6;
  2984. $menu-item-height: 6 * $baseline-grid;
  2985. $dense-menu-item-height: 4 * $baseline-grid;
  2986. $max-menu-height: 2 * $baseline-grid + $max-visible-items * $menu-item-height;
  2987. $max-dense-menu-height: 2 * $baseline-grid + $max-visible-items * $dense-menu-item-height;
  2988. .md-open-menu-container {
  2989. position: fixed;
  2990. left: 0;
  2991. top: 0;
  2992. z-index: $z-index-menu;
  2993. opacity: 0;
  2994. border-radius: $menu-border-radius;
  2995. md-menu-divider {
  2996. margin-top: $baseline-grid / 2;
  2997. margin-bottom: $baseline-grid / 2;
  2998. height: 1px;
  2999. width: 100%;
  3000. }
  3001. md-menu-content > * {
  3002. opacity: 0;
  3003. }
  3004. // Don't let the user click something until it's animated
  3005. &:not(.md-clickable) {
  3006. pointer-events: none;
  3007. }
  3008. // enter: menu scales in, then list fade in.
  3009. &.md-active {
  3010. opacity: 1;
  3011. transition: $swift-ease-out;
  3012. transition-duration: 200ms;
  3013. > md-menu-content > * {
  3014. opacity: 1;
  3015. transition: $swift-ease-in;
  3016. transition-duration: 200ms;
  3017. transition-delay: 100ms;
  3018. }
  3019. }
  3020. // leave: the container fades out
  3021. &.md-leave {
  3022. opacity: 0;
  3023. transition: $swift-ease-in;
  3024. transition-duration: 250ms;
  3025. }
  3026. }
  3027. md-menu-content {
  3028. display: flex;
  3029. flex-direction: column;
  3030. padding: $baseline-grid 0;
  3031. max-height: $max-menu-height;
  3032. overflow-y: auto;
  3033. &.md-dense {
  3034. max-height: $max-dense-menu-height;
  3035. md-menu-item {
  3036. height: $dense-menu-item-height;
  3037. min-height: 0px;
  3038. }
  3039. }
  3040. }
  3041. md-menu-item {
  3042. display: flex;
  3043. flex-direction: row;
  3044. min-height: $menu-item-height;
  3045. height: $menu-item-height;
  3046. align-content: center;
  3047. justify-content: flex-start;
  3048. > * {
  3049. width: 100%;
  3050. margin: auto 0;
  3051. padding-left: 2*$baseline-grid;
  3052. padding-right: 2*$baseline-grid;
  3053. }
  3054. > a.md-button {
  3055. display: flex;
  3056. }
  3057. > .md-button {
  3058. border-radius: 0;
  3059. margin: auto 0;
  3060. font-size: (2*$baseline-grid) - 1;
  3061. text-transform: none;
  3062. font-weight: 400;
  3063. text-align: start;
  3064. height: 100%;
  3065. padding-left: 2*$baseline-grid;
  3066. padding-right: 2*$baseline-grid;
  3067. display: inline-block;
  3068. align-items: baseline;
  3069. align-content: left;
  3070. width:100%;
  3071. md-icon {
  3072. margin: auto 2*$baseline-grid auto 0;
  3073. }
  3074. p {
  3075. display:inline-block;
  3076. margin: auto;
  3077. }
  3078. span {
  3079. margin-top: auto;
  3080. margin-bottom: auto;
  3081. }
  3082. .md-ripple-container {
  3083. border-radius: inherit;
  3084. }
  3085. }
  3086. }
  3087. .md-menu {
  3088. padding: $baseline-grid 0;
  3089. }
  3090. md-toolbar {
  3091. .md-menu {
  3092. height: auto;
  3093. margin: auto;
  3094. }
  3095. }
  3096. @media (max-width: $layout-breakpoint-sm - 1) {
  3097. md-menu-content {
  3098. min-width: 112px;
  3099. }
  3100. @for $i from 3 through 7 {
  3101. md-menu-content[width="#{$i}"] {
  3102. min-width: $i * 56px;
  3103. }
  3104. }
  3105. }
  3106. @media (min-width: $layout-breakpoint-sm) {
  3107. md-menu-content {
  3108. min-width: 96px;
  3109. }
  3110. @for $i from 3 through 7 {
  3111. md-menu-content[width="#{$i}"] {
  3112. min-width: $i * 64px;
  3113. }
  3114. }
  3115. }
  3116. md-toolbar.md-menu-toolbar {
  3117. h2.md-toolbar-tools {
  3118. line-height: 1rem;
  3119. height: auto;
  3120. padding: 3.5 * $baseline-grid;
  3121. padding-bottom: 1.5 * $baseline-grid;
  3122. }
  3123. }
  3124. md-menu-bar {
  3125. padding: 0 2.5 * $baseline-grid;
  3126. display: block;
  3127. position: relative;
  3128. z-index: 2;
  3129. .md-menu {
  3130. display: inline-block;
  3131. padding: 0;
  3132. position: relative;
  3133. }
  3134. button {
  3135. font-size: rem(1.4);
  3136. padding: 0 1.25 * $baseline-grid;
  3137. margin: 0;
  3138. border: 0;
  3139. background-color: transparent;
  3140. height: 5 * $baseline-grid;
  3141. }
  3142. md-backdrop.md-menu-backdrop {
  3143. z-index: -2;
  3144. }
  3145. }
  3146. md-menu-content.md-menu-bar-menu.md-dense {
  3147. max-height: none;
  3148. padding: 2 * $baseline-grid 0;
  3149. md-menu-item.md-indent {
  3150. position: relative;
  3151. > md-icon {
  3152. position: absolute;
  3153. padding: 0;
  3154. width: 24px;
  3155. top: 0.75 * $baseline-grid;
  3156. left: 3 * $baseline-grid;
  3157. }
  3158. > .md-button, .md-menu > .md-button {
  3159. padding: 0 4 * $baseline-grid 0 8 * $baseline-grid;
  3160. }
  3161. }
  3162. .md-button {
  3163. min-height: 0;
  3164. height: 4 * $baseline-grid;
  3165. display: flex;
  3166. span {
  3167. flex-grow: 1;
  3168. }
  3169. span.md-alt-text {
  3170. flex-grow: 0;
  3171. align-self: flex-end;
  3172. margin: 0 $baseline-grid;
  3173. }
  3174. }
  3175. md-menu-divider {
  3176. margin: $baseline-grid 0;
  3177. }
  3178. .md-menu {
  3179. padding: 0;
  3180. > .md-button {
  3181. position: relative;
  3182. margin: 0;
  3183. width: 100%;
  3184. text-align: left;
  3185. text-align: start;
  3186. text-transform: none;
  3187. font-weight: normal;
  3188. border-radius: 0px;
  3189. padding-left: 2 * $baseline-grid;
  3190. &:after {
  3191. display: block;
  3192. content: '\25BC';
  3193. position: absolute;
  3194. top: 0px;
  3195. speak: none;
  3196. transform: rotate(270deg) scaleY(0.45) scaleX(0.9);
  3197. right: 3.5 * $baseline-grid;
  3198. }
  3199. }
  3200. }
  3201. }
  3202. $progress-circular-ease-in-out : cubic-bezier(0.35, 0, 0.25, 1) !default;
  3203. $progress-circular-duration : 5.25s !default;
  3204. $progress-circular-circle-duration : $progress-circular-duration * 0.25 !default;
  3205. $progress-circular-outer-duration : $progress-circular-duration * (5 / 9) !default;
  3206. $progress-circular-sporadic-duration : $progress-circular-duration !default;
  3207. $progress-border-width : 10px;
  3208. $progress-circular-size : 10 * $progress-border-width !default;
  3209. md-progress-circular {
  3210. display: block;
  3211. position: relative;
  3212. width: $progress-circular-size;
  3213. height: $progress-circular-size;
  3214. padding-top: 0 !important;
  3215. margin-bottom: 0 !important;
  3216. transform: scale(0.5);
  3217. .md-spinner-wrapper {
  3218. display:block;
  3219. position: relative;
  3220. overflow: hidden;
  3221. .md-inner {
  3222. width: $progress-circular-size;
  3223. height: $progress-circular-size;
  3224. position: relative;
  3225. .md-gap {
  3226. position: absolute;
  3227. left: $progress-circular-size * 0.5 - 1;
  3228. right: $progress-circular-size * 0.5 - 1;
  3229. top: 0;
  3230. bottom: 0;
  3231. border-top-width: $progress-border-width;
  3232. border-top-style: solid;
  3233. box-sizing: border-box;
  3234. }
  3235. .md-left, .md-right {
  3236. position: absolute;
  3237. top: 0;
  3238. height: $progress-circular-size;
  3239. width: $progress-circular-size * 0.50;
  3240. overflow: hidden;
  3241. .md-half-circle {
  3242. position: absolute;
  3243. top: 0;
  3244. width: $progress-circular-size;
  3245. height: $progress-circular-size;
  3246. box-sizing: border-box;
  3247. border-width: $progress-border-width;
  3248. border-style: solid;
  3249. border-bottom-color: transparent;
  3250. border-radius: 50%;
  3251. }
  3252. }
  3253. .md-left {
  3254. left: 0;
  3255. .md-half-circle {
  3256. left: 0;
  3257. border-right-color: transparent;
  3258. }
  3259. }
  3260. .md-right {
  3261. right: 0;
  3262. .md-half-circle {
  3263. right: 0;
  3264. border-left-color: transparent;
  3265. }
  3266. }
  3267. }
  3268. }
  3269. .md-spinner-wrapper.md-mode-indeterminate {
  3270. animation: outer-rotate $progress-circular-outer-duration linear infinite;
  3271. .md-inner {
  3272. animation: sporadic-rotate $progress-circular-sporadic-duration $progress-circular-ease-in-out infinite;
  3273. .md-left, .md-right {
  3274. .md-half-circle {
  3275. animation-iteration-count: infinite;
  3276. animation-duration: ($progress-circular-duration * 0.25);
  3277. animation-timing-function: $progress-circular-ease-in-out;
  3278. }
  3279. }
  3280. .md-left {
  3281. .md-half-circle {
  3282. animation-name: left-wobble;
  3283. }
  3284. }
  3285. .md-right {
  3286. .md-half-circle {
  3287. animation-name: right-wobble;
  3288. }
  3289. }
  3290. }
  3291. }
  3292. md-progress-circular.ng-hide {
  3293. .md-spinner-wrapper {
  3294. animation: none;
  3295. .md-inner {
  3296. animation: none;
  3297. .md-left {
  3298. .md-half-circle {
  3299. animation-name: none;
  3300. }
  3301. }
  3302. .md-right {
  3303. .md-half-circle {
  3304. animation-name: none;
  3305. }
  3306. }
  3307. }
  3308. }
  3309. }
  3310. .md-spinner-wrapper.ng-hide {
  3311. animation: none;
  3312. .md-inner {
  3313. animation: none;
  3314. .md-left {
  3315. .md-half-circle {
  3316. animation-name: none;
  3317. }
  3318. }
  3319. .md-right {
  3320. .md-half-circle {
  3321. animation-name: none;
  3322. }
  3323. }
  3324. }
  3325. }
  3326. }
  3327. //
  3328. // Keyframe animation for the Indeterminate Progress
  3329. //
  3330. @keyframes outer-rotate {
  3331. 100% { transform: rotate(360deg); }
  3332. }
  3333. @keyframes left-wobble {
  3334. 0%, 100% { transform: rotate(130deg); }
  3335. 50% { transform: rotate( -5deg); }
  3336. }
  3337. @keyframes right-wobble {
  3338. 0%, 100% { transform: rotate(-130deg); }
  3339. 50% { transform: rotate( 5deg); }
  3340. }
  3341. @keyframes sporadic-rotate {
  3342. 12.5% { transform: rotate( 135deg); }
  3343. 25% { transform: rotate( 270deg); }
  3344. 37.5% { transform: rotate( 405deg); }
  3345. 50% { transform: rotate( 540deg); }
  3346. 62.5% { transform: rotate( 675deg); }
  3347. 75% { transform: rotate( 810deg); }
  3348. 87.5% { transform: rotate( 945deg); }
  3349. 100% { transform: rotate(1080deg); }
  3350. }
  3351. $radio-width: 16px !default;
  3352. $radio-height: $radio-width !default;
  3353. $radio-text-margin: 10px !default;
  3354. $radio-top-left: -15px !default;
  3355. md-radio-button,
  3356. .md-switch-thumb { // Used in switch
  3357. box-sizing: border-box;
  3358. display: block;
  3359. margin: 15px;
  3360. white-space: nowrap;
  3361. cursor: pointer;
  3362. .md-container {
  3363. box-sizing: border-box;
  3364. position: relative;
  3365. top: 4px;
  3366. display: inline-block;
  3367. width: $radio-width;
  3368. height: $radio-width;
  3369. cursor: pointer;
  3370. .md-ripple-container {
  3371. position: absolute;
  3372. display: block;
  3373. width: $radio-width * 3;
  3374. height: $radio-width * 3;
  3375. left: -$radio-width;
  3376. top: -$radio-width;
  3377. }
  3378. &:before {
  3379. box-sizing: border-box;
  3380. background-color: transparent;
  3381. border-radius: 50%;
  3382. content: '';
  3383. position: absolute;
  3384. display: block;
  3385. height: auto;
  3386. left: 0;
  3387. top: 0;
  3388. right: 0;
  3389. bottom: 0;
  3390. transition: all 0.5s;
  3391. width: auto;
  3392. }
  3393. }
  3394. &.md-align-top-left > div.md-container {
  3395. top: $radio-top-left;
  3396. }
  3397. .md-off {
  3398. box-sizing: border-box;
  3399. position: absolute;
  3400. top: 0;
  3401. left: 0;
  3402. width: $radio-width;
  3403. height: $radio-width;
  3404. border-style: solid;
  3405. border-width: 2px;
  3406. border-radius: 50%;
  3407. transition: border-color ease 0.28s;
  3408. }
  3409. .md-on {
  3410. box-sizing: border-box;
  3411. position: absolute;
  3412. top: 0;
  3413. left: 0;
  3414. width: $radio-width;
  3415. height: $radio-width;
  3416. border-radius: 50%;
  3417. transition: transform ease 0.28s;
  3418. transform: scale(0);
  3419. }
  3420. &.md-checked .md-on {
  3421. transform: scale(0.50);
  3422. }
  3423. .md-label {
  3424. box-sizing: border-box;
  3425. position: relative;
  3426. display: inline-block;
  3427. @include rtl(margin-left, $radio-text-margin, 0);
  3428. @include rtl(margin-right, 0, $radio-text-margin);
  3429. vertical-align: middle;
  3430. white-space: normal;
  3431. pointer-events: none;
  3432. width: auto;
  3433. }
  3434. .circle {
  3435. border-radius: 50%;
  3436. }
  3437. }
  3438. md-radio-group {
  3439. &:focus {
  3440. outline: none;
  3441. }
  3442. &.md-focused {
  3443. .md-checked .md-container:before {
  3444. left: -8px;
  3445. top: -8px;
  3446. right: -8px;
  3447. bottom: -8px;
  3448. }
  3449. }
  3450. }
  3451. @media screen and (-ms-high-contrast: active) {
  3452. md-radio-button.md-default-theme .md-on {
  3453. background-color: #fff;
  3454. }
  3455. }
  3456. $progress-linear-bar-height: 5px !default;
  3457. md-progress-linear {
  3458. display: block;
  3459. position: relative;
  3460. width: 100%;
  3461. height: $progress-linear-bar-height;
  3462. padding-top: 0 !important;
  3463. margin-bottom: 0 !important;
  3464. .md-container {
  3465. display:block;
  3466. position: relative;
  3467. overflow: hidden;
  3468. width:100%;
  3469. height: $progress-linear-bar-height;
  3470. transform: translate(0, 0) scale(1, 1);;
  3471. .md-bar {
  3472. position: absolute;
  3473. left: 0;
  3474. top: 0;
  3475. bottom: 0;
  3476. width: 100%;
  3477. height: $progress-linear-bar-height;
  3478. }
  3479. .md-dashed:before {
  3480. content: "";
  3481. display: none;
  3482. position: absolute;
  3483. margin-top: 0;
  3484. height: $progress-linear-bar-height;
  3485. width: 100%;
  3486. background-color: transparent;
  3487. background-size: 10px 10px !important;
  3488. background-position: 0px -23px;
  3489. }
  3490. .md-bar1, .md-bar2 {
  3491. // Just set the transition information here.
  3492. // Note: the actual transform values are calculated in JS
  3493. transition: transform 0.2s linear;
  3494. }
  3495. // ************************************************************
  3496. // Animations for modes: Determinate, InDeterminate, and Query
  3497. // ************************************************************
  3498. &.md-mode-query {
  3499. .md-bar1 {
  3500. display: none;
  3501. }
  3502. .md-bar2 {
  3503. transition: all 0.2s linear;
  3504. animation: query .8s infinite cubic-bezier(0.390, 0.575, 0.565, 1.000);
  3505. }
  3506. }
  3507. &.md-mode-determinate {
  3508. .md-bar1 {
  3509. display: none;
  3510. }
  3511. }
  3512. &.md-mode-indeterminate {
  3513. .md-bar1 {
  3514. animation: md-progress-linear-indeterminate-scale-1 4s infinite,
  3515. md-progress-linear-indeterminate-1 4s infinite;
  3516. }
  3517. .md-bar2 {
  3518. animation: md-progress-linear-indeterminate-scale-2 4s infinite,
  3519. md-progress-linear-indeterminate-2 4s infinite;
  3520. }
  3521. }
  3522. &.ng-hide {
  3523. animation: none;
  3524. .md-bar1 {
  3525. animation-name: none;
  3526. }
  3527. .md-bar2 {
  3528. animation-name: none;
  3529. }
  3530. }
  3531. }
  3532. // Special animations for the `buffer` mode
  3533. .md-container.md-mode-buffer {
  3534. background-color: transparent !important;
  3535. transition: all 0.2s linear;
  3536. .md-dashed:before {
  3537. display: block;
  3538. animation: buffer 3s infinite linear;
  3539. }
  3540. }
  3541. }
  3542. @keyframes query {
  3543. 0% {
  3544. opacity: 1;
  3545. transform: translateX(35%) scale(.3, 1);
  3546. }
  3547. 100% {
  3548. opacity: 0;
  3549. transform: translateX(-50%) scale(0, 1);
  3550. }
  3551. }
  3552. @keyframes buffer {
  3553. 0% {
  3554. opacity: 1;
  3555. background-position: 0px -23px;
  3556. }
  3557. 50% {
  3558. opacity: 0;
  3559. }
  3560. 100% {
  3561. opacity: 1;
  3562. background-position: -200px -23px;
  3563. }
  3564. }
  3565. @keyframes md-progress-linear-indeterminate-scale-1 {
  3566. 0% {
  3567. transform: scaleX(0.1);
  3568. animation-timing-function: linear;
  3569. }
  3570. 36.6% {
  3571. transform: scaleX(0.1);
  3572. animation-timing-function: cubic-bezier(0.334731432, 0.124819821, 0.785843996, 1);
  3573. }
  3574. 69.15% {
  3575. transform: scaleX(0.83);
  3576. animation-timing-function: cubic-bezier(0.225732004, 0, 0.233648906, 1.3709798);
  3577. }
  3578. 100% {
  3579. transform: scaleX(0.1);
  3580. }
  3581. }
  3582. @keyframes md-progress-linear-indeterminate-1 {
  3583. 0% {
  3584. left: -378.6 * 100% / 360;
  3585. animation-timing-function: linear;
  3586. }
  3587. 20% {
  3588. left: -378.6 * 100% / 360;
  3589. animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495818703);
  3590. }
  3591. 69.15% {
  3592. left: 77.4 * 100% / 360;
  3593. animation-timing-function: cubic-bezier(0.302435, 0.38135197, 0.55, 0.956352125);
  3594. }
  3595. 100% {
  3596. left: 343.6 * 100% / 360;
  3597. }
  3598. }
  3599. @keyframes md-progress-linear-indeterminate-scale-2 {
  3600. 0% {
  3601. transform: scaleX(0.1);
  3602. animation-timing-function: cubic-bezier(0.205028172, 0.057050836, 0.57660995, 0.453970841);
  3603. }
  3604. 19.15% {
  3605. transform: scaleX(0.57);
  3606. animation-timing-function: cubic-bezier(0.152312994, 0.196431957, 0.648373778, 1.00431535);
  3607. }
  3608. 44.15% {
  3609. transform: scaleX(0.91);
  3610. animation-timing-function: cubic-bezier(0.25775882, -0.003163357, 0.211761916, 1.38178961);
  3611. }
  3612. 100% {
  3613. transform: scaleX(0.1);
  3614. }
  3615. }
  3616. @keyframes md-progress-linear-indeterminate-2 {
  3617. 0% {
  3618. left: -197.6 * 100% / 360;
  3619. animation-timing-function: cubic-bezier(0.15, 0, 0.5150584, 0.409684966);
  3620. }
  3621. 25% {
  3622. left: -62.1 * 100% / 360;
  3623. animation-timing-function: cubic-bezier(0.3103299, 0.284057684, 0.8, 0.733718979);
  3624. }
  3625. 48.35% {
  3626. left: 106.2 * 100% / 360;
  3627. animation-timing-function: cubic-bezier(0.4, 0.627034903, 0.6, 0.902025796);
  3628. }
  3629. 100% {
  3630. left: 422.6 * 100% / 360;
  3631. }
  3632. }
  3633. $select-option-height: 48px;
  3634. $select-option-padding: 16px;
  3635. $select-container-padding: 16px;
  3636. $select-container-transition-duration: 350ms;
  3637. $select-max-visible-options: 5;
  3638. .md-select-menu-container {
  3639. position: fixed;
  3640. left: 0;
  3641. top: 0;
  3642. z-index: $z-index-select;
  3643. opacity: 0;
  3644. // Don't let the user select a new choice while it's animating
  3645. &:not(.md-clickable) {
  3646. pointer-events: none;
  3647. }
  3648. md-progress-circular {
  3649. display: table;
  3650. margin: 3*$baseline-grid auto !important;
  3651. }
  3652. // enter: md-select scales in, then options fade in.
  3653. &.md-active {
  3654. opacity: 1;
  3655. md-select-menu {
  3656. transition: $swift-ease-out;
  3657. transition-duration: 150ms;
  3658. > * {
  3659. opacity: 1;
  3660. transition: $swift-ease-in;
  3661. transition-duration: 150ms;
  3662. transition-delay: 100ms;
  3663. }
  3664. }
  3665. }
  3666. // leave: the container fades out
  3667. &.md-leave {
  3668. opacity: 0;
  3669. transition: $swift-ease-in;
  3670. transition-duration: 250ms;
  3671. }
  3672. }
  3673. md-input-container > md-select {
  3674. margin: 0;
  3675. order: 2;
  3676. }
  3677. md-select {
  3678. display: flex;
  3679. margin: 2.5*$baseline-grid 0 3*$baseline-grid + 2 0;
  3680. &[disabled] .md-select-value {
  3681. background-position: 0 bottom;
  3682. // This background-size is coordinated with a linear-gradient set in select-theme.scss
  3683. // to create a dotted line under the input.
  3684. background-size: 4px 1px;
  3685. background-repeat: repeat-x;
  3686. margin-bottom: -1px; // Shift downward so dotted line is positioned the same as other bottom borders
  3687. }
  3688. &:focus {
  3689. outline: none;
  3690. }
  3691. &[disabled]:hover {
  3692. cursor: default;
  3693. }
  3694. &:not([disabled]) {
  3695. &:hover {
  3696. cursor: pointer
  3697. }
  3698. &.ng-invalid.ng-dirty {
  3699. .md-select-value {
  3700. border-bottom: 2px solid;
  3701. padding-bottom: 0;
  3702. }
  3703. }
  3704. &:focus {
  3705. .md-select-value {
  3706. border-bottom-width: 2px;
  3707. border-bottom-style: solid;
  3708. padding-bottom: 0;
  3709. }
  3710. }
  3711. }
  3712. }
  3713. .md-select-value {
  3714. display: flex;
  3715. align-items: center;
  3716. padding: 2px 2px 1px;
  3717. border-bottom-width: 1px;
  3718. border-bottom-style: solid;
  3719. background-color: rgba(0,0,0,0);
  3720. position: relative;
  3721. box-sizing: content-box;
  3722. min-width: 8 * $baseline-grid;
  3723. min-height: 26px;
  3724. flex-grow: 1;
  3725. *:first-child {
  3726. flex: 1;
  3727. text-overflow: ellipsis;
  3728. white-space: nowrap;
  3729. overflow: hidden;
  3730. max-width: calc(100% - 2*#{$baseline-grid});
  3731. transform: translate3d(0, 2px, 0);
  3732. }
  3733. .md-select-icon {
  3734. display: block;
  3735. align-items: flex-end;
  3736. text-align: end;
  3737. width: 3 * $baseline-grid;
  3738. margin: 0 .5 * $baseline-grid;
  3739. transform: translate3d(0, 1px, 0);
  3740. }
  3741. .md-select-icon:after {
  3742. display: block;
  3743. content: '\25BC';
  3744. position: relative;
  3745. top: 2px;
  3746. speak: none;
  3747. transform: scaleY(0.6) scaleX(1);
  3748. }
  3749. &.md-select-placeholder {
  3750. display: flex;
  3751. order: 1;
  3752. pointer-events: none;
  3753. -webkit-font-smoothing: antialiased;
  3754. padding-left: 2px;
  3755. z-index: 1;
  3756. }
  3757. }
  3758. md-select-menu {
  3759. display: flex;
  3760. flex-direction: column;
  3761. &.md-reverse {
  3762. flex-direction: column-reverse;
  3763. }
  3764. &:not(.md-overflow) {
  3765. md-content {
  3766. padding-top: $baseline-grid;
  3767. padding-bottom: $baseline-grid;
  3768. }
  3769. }
  3770. box-shadow: $whiteframe-shadow-1dp;
  3771. max-height: ($select-option-height * $select-max-visible-options) + 2 * $baseline-grid;
  3772. min-height: $select-option-height;
  3773. overflow-y: hidden;
  3774. @include rtl(transform-origin, left top, right top);
  3775. transform: scale(1.0);
  3776. md-content {
  3777. min-width: 136px;
  3778. min-height: $select-option-height;
  3779. max-height: ($select-option-height * $select-max-visible-options) + 2 * $baseline-grid;
  3780. overflow-y: auto;
  3781. }
  3782. > * {
  3783. opacity: 0;
  3784. }
  3785. }
  3786. md-option {
  3787. cursor: pointer;
  3788. position: relative;
  3789. display: flex;
  3790. align-items: center;
  3791. width: auto;
  3792. &:focus {
  3793. outline: none;
  3794. }
  3795. .md-text {
  3796. @include not-selectable();
  3797. width: auto;
  3798. white-space: nowrap;
  3799. overflow: hidden;
  3800. text-overflow: ellipsis;
  3801. font-size: rem(1.6);
  3802. }
  3803. padding: 0 $select-option-padding 0 $select-option-padding;
  3804. height: $select-option-height;
  3805. }
  3806. md-optgroup {
  3807. display: block;
  3808. label {
  3809. display: block;
  3810. font-size: rem(1.4);
  3811. text-transform: uppercase;
  3812. padding: $baseline-grid * 2;
  3813. font-weight: 500;
  3814. }
  3815. md-option {
  3816. padding-left: $select-option-padding * 2;
  3817. padding-right: $select-option-padding * 2;
  3818. }
  3819. }
  3820. @media screen and (-ms-high-contrast: active) {
  3821. .md-select-backdrop {
  3822. background-color: transparent;
  3823. }
  3824. md-select-menu {
  3825. border: 1px solid #fff;
  3826. }
  3827. }
  3828. $sidenav-default-width: 304px !default;
  3829. $sidenav-min-space: 56px !default;
  3830. md-sidenav {
  3831. box-sizing: border-box;
  3832. position: absolute;
  3833. flex-direction: column;
  3834. z-index: $z-index-sidenav;
  3835. width: $sidenav-default-width;
  3836. min-width: $sidenav-default-width;
  3837. max-width: $sidenav-default-width;
  3838. bottom: 0;
  3839. overflow: auto;
  3840. ul {
  3841. list-style: none;
  3842. }
  3843. &.md-closed {
  3844. display: none;
  3845. }
  3846. &.md-closed-add,
  3847. &.md-closed-remove {
  3848. display: flex;
  3849. transition: 0.2s ease-in all;
  3850. }
  3851. &.md-closed-add.md-closed-add-active,
  3852. &.md-closed-remove.md-closed-remove-active {
  3853. transition: $swift-ease-out;
  3854. }
  3855. &.md-locked-open-add,
  3856. &.md-locked-open-remove {
  3857. position: static;
  3858. display: flex;
  3859. transform: translate3d(0, 0, 0);
  3860. }
  3861. &.md-locked-open {
  3862. width: $sidenav-default-width;
  3863. min-width: $sidenav-default-width;
  3864. max-width: $sidenav-default-width;
  3865. }
  3866. &.md-locked-open,
  3867. &.md-locked-open.md-closed,
  3868. &.md-locked-open.md-closed.md-sidenav-left,
  3869. &.md-locked-open.md-closed.md-sidenav-right,
  3870. &.md-locked-open-remove.md-closed {
  3871. position: static;
  3872. display: flex;
  3873. transform: translate3d(0, 0, 0);
  3874. }
  3875. &.md-locked-open-remove-active {
  3876. transition: width $swift-ease-in-duration $swift-ease-in-timing-function,
  3877. min-width $swift-ease-in-duration $swift-ease-in-timing-function;
  3878. width: 0;
  3879. min-width: 0;
  3880. }
  3881. &.md-closed.md-locked-open-add {
  3882. width: 0;
  3883. min-width: 0;
  3884. transform: translate3d(0%, 0, 0);
  3885. }
  3886. &.md-closed.md-locked-open-add-active {
  3887. transition: width $swift-ease-in-duration $swift-ease-in-timing-function,
  3888. min-width $swift-ease-in-duration $swift-ease-in-timing-function;
  3889. width: $sidenav-default-width;
  3890. min-width: $sidenav-default-width;
  3891. transform: translate3d(0%, 0, 0);
  3892. }
  3893. @extend .md-sidenav-left;
  3894. }
  3895. .md-sidenav-backdrop.md-locked-open {
  3896. display: none;
  3897. }
  3898. .md-sidenav-left {
  3899. left: 0;
  3900. top: 0;
  3901. transform: translate3d(0%, 0, 0);
  3902. &.md-closed {
  3903. transform: translate3d(-100%, 0, 0);
  3904. }
  3905. }
  3906. .md-sidenav-right {
  3907. left: 100%;
  3908. top: 0;
  3909. transform: translate3d(-100%, 0, 0);
  3910. &.md-closed {
  3911. transform: translate3d(0%, 0, 0);
  3912. }
  3913. }
  3914. @media (max-width: $sidenav-default-width + $sidenav-min-space) {
  3915. md-sidenav {
  3916. width: 85%;
  3917. }
  3918. }
  3919. @media screen and (-ms-high-contrast: active) {
  3920. .md-sidenav-left {
  3921. border-right: 1px solid #fff;
  3922. }
  3923. .md-sidenav-right {
  3924. border-left: 1px solid #fff;
  3925. }
  3926. }
  3927. $slider-background-color: rgb(200, 200, 200) !default;
  3928. $slider-height: 48px !default;
  3929. $slider-track-height: 2px !default;
  3930. $slider-thumb-width: 32px !default;
  3931. $slider-thumb-height: $slider-thumb-width !default;
  3932. $slider-thumb-default-scale: 0.5 !default;
  3933. $slider-thumb-hover-scale: 0.6 !default;
  3934. $slider-thumb-focus-scale: 0.85 !default;
  3935. $slider-thumb-disabled-scale: 0.35 !default;
  3936. $slider-thumb-disabled-border: 6px !default;
  3937. $slider-focus-thumb-width: 48px !default;
  3938. $slider-focus-thumb-height: $slider-focus-thumb-width !default;
  3939. $slider-focus-ring-border-width: 3px !default;
  3940. $slider-arrow-height: 16px !default;
  3941. $slider-arrow-width: 28px !default;
  3942. $slider-sign-height: 28px !default;
  3943. $slider-sign-width: 28px !default;
  3944. $slider-sign-top: ($slider-height / 2) - ($slider-thumb-default-scale * $slider-thumb-height / 2) - ($slider-sign-height) - ($slider-arrow-height) + 8px !default;
  3945. @keyframes sliderFocusThumb {
  3946. 0% {
  3947. opacity: 0;
  3948. transform: scale(0.0);
  3949. }
  3950. 50% {
  3951. transform: scale(1.0);
  3952. opacity: 1;
  3953. }
  3954. 100% {
  3955. opacity: 0;
  3956. }
  3957. }
  3958. @mixin slider-thumb-position($width: $slider-thumb-width, $height: $slider-thumb-height) {
  3959. position: absolute;
  3960. left: -$width / 2;
  3961. top: ($slider-height / 2) - ($height / 2);
  3962. width: $width;
  3963. height: $height;
  3964. border-radius: max($width, $height);
  3965. }
  3966. md-slider {
  3967. height: $slider-height;
  3968. position: relative;
  3969. display: block;
  3970. margin-left: 4px;
  3971. margin-right: 4px;
  3972. padding: 0;
  3973. *, *:after {
  3974. box-sizing: border-box;
  3975. }
  3976. .md-slider-wrapper {
  3977. position: relative;
  3978. }
  3979. /**
  3980. * Track
  3981. */
  3982. .md-track-container {
  3983. width: 100%;
  3984. position: absolute;
  3985. top: ($slider-height / 2) - ($slider-track-height) / 2;
  3986. height: $slider-track-height;
  3987. }
  3988. .md-track {
  3989. position: absolute;
  3990. left: 0;
  3991. right: 0;
  3992. height: 100%;
  3993. }
  3994. .md-track-fill {
  3995. transition: width 0.05s linear;
  3996. }
  3997. .md-track-ticks {
  3998. position: absolute;
  3999. left: 0;
  4000. right: 0;
  4001. height: 100%;
  4002. }
  4003. .md-track-ticks canvas {
  4004. // Restrict the width of the canvas so that ticks are rendered correctly
  4005. // when parent elements are resized. Else, the position of the ticks might
  4006. // be incorrect as we only update the canvas width attribute on window resize.
  4007. width: 100%;
  4008. }
  4009. /**
  4010. * Slider thumb
  4011. */
  4012. .md-thumb-container {
  4013. position: absolute;
  4014. left: 0;
  4015. top: 50%;
  4016. transform: translate3d(-50%,-50%,0);
  4017. transition: left 0.1s linear;
  4018. }
  4019. .md-thumb {
  4020. z-index: 1;
  4021. // Positioning the outer area of the thumb 6px bigger than it needs to be keeps
  4022. // the :after area being clipped by the background of the focus-thumb animation.
  4023. @include slider-thumb-position($slider-thumb-width + 6, $slider-thumb-height + 6);
  4024. // We render thumb in an :after selector to fix an obscure problem with the
  4025. // thumb being clipped by the focus-ring and focus-thumb while running the focus
  4026. // animation.
  4027. &:after {
  4028. content: '';
  4029. position: absolute;
  4030. left: 3px;
  4031. top: 3px;
  4032. width: $slider-thumb-width;
  4033. height: $slider-thumb-height;
  4034. border-radius: max($slider-thumb-width, $slider-thumb-height);
  4035. border-width: 3px;
  4036. border-style: solid;
  4037. }
  4038. transform: scale($slider-thumb-default-scale);
  4039. transition: all 0.1s linear;
  4040. }
  4041. /* The sign that's focused in discrete mode */
  4042. .md-sign {
  4043. /* Center the children (slider-thumb-text) */
  4044. display: flex;
  4045. align-items: center;
  4046. justify-content: center;
  4047. position: absolute;
  4048. left: -($slider-sign-height / 2);
  4049. top: $slider-sign-top;
  4050. width: $slider-sign-width;
  4051. height: $slider-sign-height;
  4052. border-radius: max($slider-sign-height, $slider-sign-width);
  4053. transform: scale(0.4) translate3d(0,(-$slider-sign-top + 8) / 0.4,0);
  4054. transition: all 0.2s ease-in-out;
  4055. /* The arrow pointing down under the sign */
  4056. &:after {
  4057. position: absolute;
  4058. content: '';
  4059. left: -($slider-sign-width / 2 - $slider-arrow-width / 2);
  4060. border-radius: $slider-arrow-height;
  4061. top: 19px;
  4062. border-left: $slider-arrow-width / 2 solid transparent;
  4063. border-right: $slider-arrow-width / 2 solid transparent;
  4064. border-top-width: $slider-arrow-height;
  4065. border-top-style: solid;
  4066. opacity: 0;
  4067. transform: translate3d(0,-8px,0);
  4068. transition: all 0.2s ease-in-out;
  4069. }
  4070. .md-thumb-text {
  4071. z-index: 1;
  4072. font-size: 12px;
  4073. font-weight: bold;
  4074. }
  4075. }
  4076. /**
  4077. * The border/background that comes in when focused in non-discrete mode
  4078. */
  4079. .md-focus-thumb {
  4080. @include slider-thumb-position($slider-focus-thumb-width, $slider-focus-thumb-height);
  4081. display: none;
  4082. opacity: 0;
  4083. background-color: #C0C0C0;
  4084. animation: sliderFocusThumb 0.4s linear;
  4085. }
  4086. .md-focus-ring {
  4087. @include slider-thumb-position($slider-focus-thumb-width, $slider-focus-thumb-height);
  4088. transform: scale(0);
  4089. transition: all 0.2s linear;
  4090. opacity: 0.26;
  4091. }
  4092. .md-disabled-thumb {
  4093. @include slider-thumb-position(
  4094. $slider-thumb-width + $slider-thumb-disabled-border * 2,
  4095. $slider-thumb-height + $slider-thumb-disabled-border * 2
  4096. );
  4097. transform: scale($slider-thumb-disabled-scale);
  4098. border-width: $slider-thumb-disabled-border;
  4099. border-style: solid;
  4100. display: none;
  4101. }
  4102. &.md-min {
  4103. .md-thumb {
  4104. &:after {
  4105. background-color: white;
  4106. }
  4107. }
  4108. .md-sign {
  4109. opacity: 0;
  4110. }
  4111. }
  4112. &:focus {
  4113. outline: none;
  4114. }
  4115. /* Don't animate left/right while panning */
  4116. &.md-dragging {
  4117. .md-thumb-container,
  4118. .md-track-fill {
  4119. transition: none;
  4120. }
  4121. }
  4122. &:not([md-discrete]) {
  4123. /* Hide the sign and ticks in non-discrete mode */
  4124. .md-track-ticks,
  4125. .md-sign {
  4126. display: none;
  4127. }
  4128. &:not([disabled]) {
  4129. &:hover {
  4130. .md-thumb {
  4131. transform: scale($slider-thumb-hover-scale);
  4132. }
  4133. }
  4134. &:focus,
  4135. &.md-active {
  4136. .md-focus-thumb {
  4137. display: block;
  4138. }
  4139. .md-focus-ring {
  4140. transform: scale(1);
  4141. }
  4142. .md-thumb {
  4143. transform: scale($slider-thumb-focus-scale);
  4144. }
  4145. }
  4146. }
  4147. }
  4148. &[md-discrete] {
  4149. /* Hide the focus thumb in discrete mode */
  4150. .md-focus-thumb,
  4151. .md-focus-ring {
  4152. display: none;
  4153. }
  4154. &:not([disabled]) {
  4155. &:focus,
  4156. &.md-active {
  4157. .md-sign,
  4158. .md-sign:after {
  4159. opacity: 1;
  4160. transform: translate3d(0,0,0) scale(1.0);
  4161. }
  4162. }
  4163. }
  4164. }
  4165. &[disabled] {
  4166. .md-track-fill {
  4167. display: none;
  4168. }
  4169. .md-sign {
  4170. display: none;
  4171. }
  4172. .md-thumb {
  4173. transform: scale($slider-thumb-disabled-scale);
  4174. }
  4175. .md-disabled-thumb {
  4176. display: block;
  4177. }
  4178. }
  4179. }
  4180. @media screen and (-ms-high-contrast: active) {
  4181. md-slider.md-default-theme .md-track {
  4182. border-bottom: 1px solid #fff;
  4183. }
  4184. }
  4185. .md-sticky-clone {
  4186. z-index: 2;
  4187. top: 0;
  4188. left: 0;
  4189. right: 0;
  4190. position: absolute !important;
  4191. transform: translate3d(-9999px,-9999px,0);
  4192. &[sticky-state="active"] {
  4193. transform: translate3d(0, 0, 0);
  4194. &:not(.md-sticky-no-effect) .md-subheader-inner {
  4195. animation: subheaderStickyHoverIn 0.3s ease-out both;
  4196. }
  4197. }
  4198. }
  4199. $subheader-line-height: 1em !default;
  4200. $subheader-font-size: rem(1.4) !default;
  4201. $subheader-padding: ($baseline-grid * 2) 0px ($baseline-grid * 2) ($baseline-grid * 2) !default;
  4202. $subheader-font-weight: 500 !default;
  4203. $subheader-margin: 0 0 0 0 !default;
  4204. $subheader-margin-right: 16px !default;
  4205. $subheader-sticky-shadow: 0px 2px 4px 0 rgba(0,0,0,0.16) !default;
  4206. @keyframes subheaderStickyHoverIn {
  4207. 0% {
  4208. box-shadow: 0 0 0 0 transparent;
  4209. }
  4210. 100% {
  4211. box-shadow: $subheader-sticky-shadow;
  4212. }
  4213. }
  4214. @keyframes subheaderStickyHoverOut {
  4215. 0% {
  4216. box-shadow: $subheader-sticky-shadow;
  4217. }
  4218. 100% {
  4219. box-shadow: 0 0 0 0 transparent;
  4220. }
  4221. }
  4222. .md-subheader-wrapper {
  4223. &:not(.md-sticky-no-effect) {
  4224. .md-subheader {
  4225. margin: 0;
  4226. }
  4227. transition: 0.2s ease-out margin;
  4228. &.md-sticky-clone {
  4229. z-index: 2;
  4230. }
  4231. &[sticky-state="active"] {
  4232. margin-top: -2px;
  4233. }
  4234. &:not(.md-sticky-clone)[sticky-prev-state="active"] .md-subheader-inner:after {
  4235. animation: subheaderStickyHoverOut 0.3s ease-out both;
  4236. }
  4237. }
  4238. }
  4239. .md-subheader {
  4240. display: block;
  4241. font-size: $subheader-font-size;
  4242. font-weight: $subheader-font-weight;
  4243. line-height: $subheader-line-height;
  4244. margin: $subheader-margin;
  4245. margin-right: $subheader-margin-right;
  4246. position: relative;
  4247. .md-subheader-inner {
  4248. display: block;
  4249. padding: $subheader-padding;
  4250. }
  4251. .md-subheader-content {
  4252. display: block;
  4253. z-index: 1;
  4254. position: relative;
  4255. }
  4256. }
  4257. $switch-width: 36px !default;
  4258. $switch-height: $baseline-grid * 3 !default;
  4259. $switch-bar-height: 14px !default;
  4260. $switch-thumb-size: 20px !default;
  4261. md-switch {
  4262. display: flex;
  4263. align-items: center;
  4264. margin: 15px;
  4265. white-space: nowrap;
  4266. cursor: pointer;
  4267. outline: none;
  4268. user-select: none;
  4269. .md-container {
  4270. cursor: grab;
  4271. width: $switch-width;
  4272. height: $switch-height;
  4273. position: relative;
  4274. user-select: none;
  4275. margin-right: 8px;
  4276. }
  4277. // If the user moves his mouse off the switch, stil display grabbing cursor
  4278. &:not([disabled]) {
  4279. .md-dragging,
  4280. &.md-dragging .md-container {
  4281. cursor: grabbing;
  4282. }
  4283. }
  4284. &.md-focused:not([disabled]) {
  4285. .md-thumb:before {
  4286. left: -8px;
  4287. top: -8px;
  4288. right: -8px;
  4289. bottom: -8px;
  4290. }
  4291. &:not(.md-checked) {
  4292. .md-thumb:before {
  4293. background-color: rgba(0, 0, 0, 0.12);
  4294. }
  4295. }
  4296. }
  4297. .md-label {
  4298. border-color: transparent;
  4299. border-width: 0;
  4300. }
  4301. .md-bar {
  4302. left: 1px;
  4303. width: $switch-width - 2px;
  4304. top: $switch-height / 2 - $switch-bar-height / 2;
  4305. height: $switch-bar-height;
  4306. border-radius: 8px;
  4307. position: absolute;
  4308. }
  4309. .md-thumb-container {
  4310. top: $switch-height / 2 - $switch-thumb-size / 2;
  4311. left: 0;
  4312. width: $switch-width - $switch-thumb-size;
  4313. position: absolute;
  4314. transform: translate3d(0,0,0);
  4315. z-index: 1;
  4316. }
  4317. &.md-checked .md-thumb-container {
  4318. transform: translate3d(100%,0,0);
  4319. }
  4320. .md-thumb {
  4321. position: absolute;
  4322. margin: 0;
  4323. left: 0;
  4324. top: 0;
  4325. outline: none;
  4326. height: $switch-thumb-size;
  4327. width: $switch-thumb-size;
  4328. border-radius: 50%;
  4329. box-shadow: $whiteframe-shadow-1dp;
  4330. &:before {
  4331. background-color: transparent;
  4332. border-radius: 50%;
  4333. content: '';
  4334. position: absolute;
  4335. display: block;
  4336. height: auto;
  4337. left: 0;
  4338. top: 0;
  4339. right: 0;
  4340. bottom: 0;
  4341. transition: all 0.5s;
  4342. width: auto;
  4343. }
  4344. .md-ripple-container {
  4345. position: absolute;
  4346. display: block;
  4347. width: auto;
  4348. height: auto;
  4349. left: -$switch-thumb-size;
  4350. top: -$switch-thumb-size;
  4351. right: -$switch-thumb-size;
  4352. bottom: -$switch-thumb-size;
  4353. }
  4354. }
  4355. &:not(.md-dragging) {
  4356. .md-bar,
  4357. .md-thumb-container,
  4358. .md-thumb {
  4359. transition: $swift-linear;
  4360. transition-property: transform, background-color;
  4361. }
  4362. .md-bar,
  4363. .md-thumb {
  4364. transition-delay: 0.05s;
  4365. }
  4366. }
  4367. }
  4368. @media screen and (-ms-high-contrast: active) {
  4369. md-switch.md-default-theme .md-bar {
  4370. background-color: #666;
  4371. }
  4372. md-switch.md-default-theme.md-checked .md-bar {
  4373. background-color: #9E9E9E;
  4374. }
  4375. md-switch.md-default-theme .md-thumb {
  4376. background-color: #fff;
  4377. }
  4378. }
  4379. // See height set globally, depended on by buttons
  4380. md-toast {
  4381. display: flex;
  4382. position:absolute;
  4383. z-index: $z-index-toast;
  4384. box-sizing: border-box;
  4385. align-items: center;
  4386. min-height: 48px;
  4387. padding-left: 24px;
  4388. padding-right: 24px;
  4389. box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
  4390. border-radius: 2px;
  4391. font-size: 14px;
  4392. cursor: default;
  4393. height: 0px;
  4394. max-height: 7*$toast-height;
  4395. max-width: 100%;
  4396. overflow:hidden;
  4397. &.md-capsule {
  4398. border-radius: 24px;
  4399. }
  4400. opacity: 1;
  4401. transform: translate3d(0,0,0) rotateZ(0deg);
  4402. transition: $swift-ease-out;
  4403. &.ng-leave-active {
  4404. transition: $swift-ease-in;
  4405. }
  4406. /* Transition differently when swiping */
  4407. &.md-swipeleft,
  4408. &.md-swiperight,
  4409. &.md-swipeup,
  4410. &.md-swipedown {
  4411. transition: $swift-ease-out;
  4412. }
  4413. &.ng-enter {
  4414. transform: translate3d(0, 100%, 0);
  4415. &.md-top {
  4416. transform: translate3d(0, -100%, 0);
  4417. }
  4418. opacity: 0;
  4419. &.ng-enter-active {
  4420. transform: translate3d(0, 0, 0);
  4421. opacity: 1;
  4422. }
  4423. }
  4424. &.ng-leave.ng-leave-active {
  4425. opacity: 0;
  4426. transform: translate3d(0, 100%, 0);
  4427. &.md-top {
  4428. transform: translate3d(0, -100%, 0);
  4429. }
  4430. &.md-swipeleft {
  4431. transform: translate3d(-100%, 0%, 0);
  4432. }
  4433. &.md-swiperight {
  4434. transform: translate3d(100%, 0%, 0);
  4435. }
  4436. }
  4437. .md-action {
  4438. line-height: 19px;
  4439. margin-left: 24px;
  4440. cursor: pointer;
  4441. text-transform: uppercase;
  4442. float: right;
  4443. &.md-button {
  4444. min-width: 0;
  4445. }
  4446. }
  4447. }
  4448. @media (max-width: $layout-breakpoint-sm) {
  4449. md-toast {
  4450. left: 0;
  4451. right: 0;
  4452. width: 100%;
  4453. max-width: 100%;
  4454. min-width: 0;
  4455. border-radius: 0;
  4456. bottom: 0;
  4457. &.md-top {
  4458. bottom: auto;
  4459. top: 0;
  4460. }
  4461. }
  4462. }
  4463. @media (min-width: $layout-breakpoint-sm) {
  4464. md-toast {
  4465. min-width: 288px;
  4466. &.md-bottom {
  4467. bottom: $toast-margin;
  4468. }
  4469. &.md-left {
  4470. left: $toast-margin;
  4471. }
  4472. &.md-right {
  4473. right: $toast-margin;
  4474. }
  4475. &.md-top {
  4476. top: $toast-margin;
  4477. }
  4478. /*
  4479. * When the toast doesn't take up the whole screen,
  4480. * make it rotate when the user swipes it away
  4481. */
  4482. &.ng-leave.ng-leave-active {
  4483. &.md-swipeleft {
  4484. transform: translate3d(-100%, 25%, 0) rotateZ(-15deg);
  4485. }
  4486. &.md-swiperight {
  4487. transform: translate3d(100%, 25%, 0) rotateZ(15deg);
  4488. }
  4489. &.md-top {
  4490. &.md-swipeleft {
  4491. transform: translate3d(-100%, 0, 0) rotateZ(-15deg);
  4492. }
  4493. &.md-swiperight {
  4494. transform: translate3d(100%, 0, 0) rotateZ(15deg);
  4495. }
  4496. }
  4497. }
  4498. }
  4499. }
  4500. @media (min-width: $layout-breakpoint-lg) {
  4501. md-toast {
  4502. max-width: $baseline-grid * 71;
  4503. }
  4504. }
  4505. @media screen and (-ms-high-contrast: active) {
  4506. md-toast {
  4507. border: 1px solid #fff;
  4508. }
  4509. }
  4510. $tabs-paginator-width: $baseline-grid * 4 !default;
  4511. $tabs-tab-width: $baseline-grid * 12 !default;
  4512. $tabs-header-height: 48px !default;
  4513. @keyframes md-tab-content-hide {
  4514. 0% { opacity: 1; }
  4515. 50% { opacity: 1; }
  4516. 100% { opacity: 0; }
  4517. }
  4518. md-tab-data {
  4519. position: absolute;
  4520. top: 0;
  4521. left: 0;
  4522. right: 0;
  4523. bottom: 0;
  4524. z-index: -1;
  4525. opacity: 0;
  4526. }
  4527. md-tabs {
  4528. display: block;
  4529. margin: 0;
  4530. border-radius: 2px;
  4531. overflow: hidden;
  4532. position: relative;
  4533. flex-shrink: 0;
  4534. &:not(.md-no-tab-content):not(.md-dynamic-height) {
  4535. min-height: 200 + $tabs-header-height;
  4536. }
  4537. &[md-align-tabs="bottom"] {
  4538. padding-bottom: $tabs-header-height;
  4539. md-tabs-wrapper {
  4540. position: absolute;
  4541. bottom: 0;
  4542. left: 0;
  4543. right: 0;
  4544. height: $tabs-header-height;
  4545. z-index: 2;
  4546. }
  4547. md-tabs-content-wrapper {
  4548. top: 0;
  4549. bottom: $tabs-header-height;
  4550. }
  4551. }
  4552. &.md-dynamic-height {
  4553. md-tabs-content-wrapper {
  4554. min-height: 0;
  4555. position: relative;
  4556. top: auto;
  4557. left: auto;
  4558. right: auto;
  4559. bottom: auto;
  4560. overflow: visible;
  4561. }
  4562. md-tab-content {
  4563. &.md-active {
  4564. position: relative;
  4565. }
  4566. }
  4567. }
  4568. &[md-border-bottom] {
  4569. md-tabs-wrapper {
  4570. border-width: 0 0 1px;
  4571. border-style: solid;
  4572. }
  4573. &:not(.md-dynamic-height) {
  4574. md-tabs-content-wrapper {
  4575. top: $tabs-header-height + 1;
  4576. }
  4577. }
  4578. }
  4579. }
  4580. md-tabs-wrapper {
  4581. display: block;
  4582. position: relative;
  4583. md-prev-button, md-next-button {
  4584. height: 100%;
  4585. width: $tabs-paginator-width;
  4586. position: absolute;
  4587. top: 50%;
  4588. transform: translateY(-50%);
  4589. line-height: 1em;
  4590. z-index: 2;
  4591. cursor: pointer;
  4592. font-size: 16px;
  4593. background: transparent no-repeat center center;
  4594. transition: $swift-ease-in-out;
  4595. &:focus {
  4596. outline: none;
  4597. }
  4598. &.md-disabled {
  4599. opacity: 0.25;
  4600. cursor: default;
  4601. }
  4602. &.ng-leave {
  4603. transition: none;
  4604. }
  4605. md-icon {
  4606. position: absolute;
  4607. top: 50%;
  4608. left: 50%;
  4609. transform: translate3d(-50%, -50%, 0);
  4610. }
  4611. }
  4612. md-prev-button {
  4613. left: 0;
  4614. background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==');
  4615. }
  4616. md-next-button {
  4617. right: 0;
  4618. background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K');
  4619. md-icon {
  4620. transform: translate3d(-50%, -50%, 0) rotate(180deg);
  4621. }
  4622. }
  4623. &.md-stretch-tabs {
  4624. md-pagination-wrapper {
  4625. width: 100%;
  4626. display: flex;
  4627. flex-direction: row;
  4628. md-tab-item {
  4629. flex-grow: 1;
  4630. }
  4631. }
  4632. }
  4633. }
  4634. md-tabs-canvas {
  4635. @include pie-clearfix;
  4636. position: relative;
  4637. overflow: hidden;
  4638. display: block;
  4639. height: $tabs-header-height;
  4640. .md-dummy-wrapper {
  4641. position: absolute;
  4642. top: 0;
  4643. left: 0;
  4644. }
  4645. &.md-paginated {
  4646. margin: 0 $tabs-paginator-width;
  4647. }
  4648. &.md-center-tabs {
  4649. display: flex;
  4650. flex-direction: column;
  4651. text-align: center;
  4652. .md-tab {
  4653. float: none;
  4654. display: inline-block;
  4655. }
  4656. }
  4657. }
  4658. md-pagination-wrapper {
  4659. @include pie-clearfix;
  4660. height: $tabs-header-height;
  4661. display: block;
  4662. transition: transform $swift-ease-in-out-duration $swift-ease-in-out-timing-function;
  4663. position: absolute;
  4664. width: 999999px;
  4665. left: 0;
  4666. transform: translate3d(0, 0, 0);
  4667. &.md-center-tabs {
  4668. position: relative;
  4669. width: initial;
  4670. margin: 0 auto;
  4671. }
  4672. }
  4673. md-tabs-content-wrapper {
  4674. display: block;
  4675. position: absolute;
  4676. top: $tabs-header-height;
  4677. left: 0;
  4678. right: 0;
  4679. bottom: 0;
  4680. overflow: hidden;
  4681. }
  4682. md-tab-content {
  4683. display: block;
  4684. position: absolute;
  4685. top: 0;
  4686. left: 0;
  4687. right: 0;
  4688. bottom: 0;
  4689. transform: translateX(0);
  4690. transition: transform $swift-ease-in-out-duration $swift-ease-in-out-timing-function;
  4691. overflow: auto;
  4692. &.md-no-scroll {
  4693. bottom: auto;
  4694. overflow: hidden;
  4695. }
  4696. &.ng-leave, &.md-no-transition {
  4697. transition: none;
  4698. }
  4699. &.md-left {
  4700. transform: translateX(-100%);
  4701. animation: 2 * $swift-ease-in-out-duration md-tab-content-hide;
  4702. opacity: 0;
  4703. * {
  4704. transition: visibility 0s linear;
  4705. transition-delay: $swift-ease-in-out-duration;
  4706. visibility: hidden;
  4707. }
  4708. }
  4709. &.md-right {
  4710. transform: translateX(100%);
  4711. animation: 2 * $swift-ease-in-out-duration md-tab-content-hide;
  4712. opacity: 0;
  4713. * {
  4714. transition: visibility 0s linear;
  4715. transition-delay: $swift-ease-in-out-duration;
  4716. visibility: hidden;
  4717. }
  4718. }
  4719. > div.ng-leave {
  4720. animation: 2 * $swift-ease-in-out-duration md-tab-content-hide;
  4721. }
  4722. }
  4723. md-ink-bar {
  4724. $duration: $swift-ease-in-out-duration * 0.5;
  4725. $multiplier: 0.5;
  4726. position: absolute;
  4727. left: auto;
  4728. right: auto;
  4729. bottom: 0;
  4730. height: 2px;
  4731. &.md-left {
  4732. transition: left ($duration * $multiplier) $swift-ease-in-out-timing-function,
  4733. right $duration $swift-ease-in-out-timing-function;
  4734. }
  4735. &.md-right {
  4736. transition: left $duration $swift-ease-in-out-timing-function,
  4737. right ($duration * $multiplier) $swift-ease-in-out-timing-function;
  4738. }
  4739. }
  4740. md-tab {
  4741. position: absolute;
  4742. z-index: -1;
  4743. left: -9999px;
  4744. }
  4745. .md-tab {
  4746. font-size: 14px;
  4747. text-align: center;
  4748. line-height: $tabs-header-height - 24;
  4749. padding: 12px 24px;
  4750. transition: background-color 0.35s $swift-ease-in-out-timing-function;
  4751. cursor: pointer;
  4752. white-space: nowrap;
  4753. position: relative;
  4754. text-transform: uppercase;
  4755. float: left;
  4756. font-weight: 500;
  4757. box-sizing: border-box;
  4758. overflow: hidden;
  4759. text-overflow: ellipsis;
  4760. &.md-focused {
  4761. box-shadow: none;
  4762. outline: none;
  4763. }
  4764. &.md-active {
  4765. cursor: default;
  4766. }
  4767. &.md-disabled {
  4768. pointer-events: none;
  4769. touch-action: pan-y;
  4770. user-select: none;
  4771. -webkit-user-drag: none;
  4772. opacity: 0.5;
  4773. cursor: default;
  4774. }
  4775. &.ng-leave {
  4776. transition: none;
  4777. }
  4778. }
  4779. md-toolbar + md-tabs {
  4780. border-top-left-radius: 0;
  4781. border-top-right-radius: 0;
  4782. }
  4783. // Standard/Desktop Heights
  4784. $toolbar-tools-height: 64px !default;
  4785. $toolbar-height: 64px !default;
  4786. $toolbar-medium-tall-height: 88px !default;
  4787. $toolbar-tall-height: 128px !default;
  4788. // Mobile portrait heights
  4789. $toolbar-tools-height-mobile-portrait: 56px !default;
  4790. $toolbar-height-mobile-portrait: 56px !default;
  4791. // Mobile landscape heights
  4792. $toolbar-tools-height-mobile-landscape: 48px !default;
  4793. $toolbar-height-mobile-landscape: 48px !default;
  4794. $toolbar-indent-margin: 64px !default;
  4795. $toolbar-padding: 16px !default;
  4796. $icon-button-margin-offset: rem(-0.800) !default;
  4797. md-toolbar {
  4798. box-sizing: border-box;
  4799. display: flex;
  4800. flex-direction: column;
  4801. position: relative;
  4802. z-index: 2;
  4803. font-size: rem(2.0);
  4804. min-height: $baseline-grid * 8;
  4805. width: 100%;
  4806. &.md-whiteframe-z1-add, &.md-whiteframe-z1-remove {
  4807. transition: box-shadow $swift-ease-in-out-duration linear;
  4808. }
  4809. md-toolbar-filler {
  4810. width: 9 * $baseline-grid;
  4811. }
  4812. *,
  4813. *:before,
  4814. *:after {
  4815. box-sizing: border-box;
  4816. }
  4817. &.md-tall {
  4818. height: $toolbar-tall-height;
  4819. min-height: $toolbar-tall-height;
  4820. max-height: $toolbar-tall-height;
  4821. }
  4822. &.md-medium-tall {
  4823. height: $toolbar-medium-tall-height;
  4824. min-height: $toolbar-medium-tall-height;
  4825. max-height: $toolbar-medium-tall-height;
  4826. .md-toolbar-tools {
  4827. height: 48px;
  4828. min-height: 48px;
  4829. max-height: 48px;
  4830. }
  4831. }
  4832. > .md-indent {
  4833. margin-left: $toolbar-indent-margin;
  4834. }
  4835. ~ md-content {
  4836. > md-list {
  4837. padding: 0;
  4838. md-list-item:last-child {
  4839. md-divider {
  4840. display: none;
  4841. }
  4842. }
  4843. }
  4844. }
  4845. }
  4846. .md-toolbar-tools {
  4847. font-size: $title-font-size-base;
  4848. letter-spacing: 0.005em;
  4849. box-sizing: border-box;
  4850. font-weight: 400;
  4851. display: flex;
  4852. align-items: center;
  4853. flex-direction: row;
  4854. width: 100%;
  4855. height: $toolbar-tools-height;
  4856. max-height: $toolbar-tools-height;
  4857. padding: 0 $toolbar-padding;
  4858. margin: 0;
  4859. h1, h2, h3 {
  4860. font-size: inherit;
  4861. font-weight: inherit;
  4862. margin: inherit;
  4863. }
  4864. a {
  4865. color: inherit;
  4866. text-decoration: none;
  4867. }
  4868. .fill-height {
  4869. display: flex;
  4870. align-items: center;
  4871. }
  4872. .md-button {
  4873. margin-top: 0;
  4874. margin-bottom: 0;
  4875. }
  4876. &> .md-button:first-child {
  4877. margin-left: $icon-button-margin-offset;
  4878. }
  4879. &> .md-button:last-child {
  4880. margin-right: $icon-button-margin-offset;
  4881. }
  4882. &> md-menu:last-child {
  4883. margin-right: $icon-button-margin-offset;
  4884. & > .md-button {
  4885. margin-right: 0;
  4886. }
  4887. }
  4888. @media screen and (-ms-high-contrast: active) {
  4889. border-bottom: 1px solid #fff;
  4890. }
  4891. }
  4892. // Handle mobile portrait
  4893. @media only screen and (min-width: 0) and (max-width: $layout-breakpoint-sm) and
  4894. (orientation: portrait) {
  4895. md-toolbar {
  4896. min-height: $toolbar-height-mobile-portrait;
  4897. }
  4898. .md-toolbar-tools {
  4899. height: $toolbar-height-mobile-portrait;
  4900. max-height: $toolbar-height-mobile-portrait;
  4901. }
  4902. }
  4903. // Handle mobile landscape
  4904. @media only screen and (min-width: 0) and (max-width: $layout-breakpoint-sm) and
  4905. (orientation: landscape) {
  4906. md-toolbar {
  4907. min-height: $toolbar-height-mobile-landscape;
  4908. }
  4909. .md-toolbar-tools {
  4910. height: $toolbar-height-mobile-landscape;
  4911. max-height: $toolbar-height-mobile-landscape;
  4912. }
  4913. }
  4914. $tooltip-fontsize-lg: rem(1);
  4915. $tooltip-fontsize-sm: rem(1.4);
  4916. $tooltip-height-lg: rem(2.2);
  4917. $tooltip-height-sm: rem(3.2);
  4918. $tooltip-top-margin-lg: rem(1.4);
  4919. $tooltip-top-margin-sm: rem(2.4);
  4920. $tooltip-lr-padding-lg: rem(0.8);
  4921. $tooltip-lr-padding-sm: rem(1.6);
  4922. $tooltip-max-width: rem(3.20);
  4923. md-tooltip {
  4924. position: absolute;
  4925. z-index: $z-index-tooltip;
  4926. overflow: hidden;
  4927. pointer-events: none;
  4928. border-radius: 4px;
  4929. font-weight: 500;
  4930. font-size: $tooltip-fontsize-sm;
  4931. @media screen and (min-width: $layout-breakpoint-sm) {
  4932. font-size: $tooltip-fontsize-lg;
  4933. }
  4934. .md-background {
  4935. position: absolute;
  4936. border-radius: 50%;
  4937. transform: translate(-50%, -50%) scale(0);
  4938. opacity: 1;
  4939. &.md-show-add {
  4940. transition: $swift-ease-out;
  4941. transform: translate(-50%, -50%) scale(0);
  4942. opacity: 0;
  4943. }
  4944. &.md-show, &.md-show-add-active {
  4945. transform: translate(-50%, -50%) scale(1);
  4946. opacity: 1;
  4947. }
  4948. &.md-show-remove {
  4949. transition: $swift-ease-in;
  4950. &.md-show-remove-active {
  4951. transform: translate(-50%, -50%) scale(0);
  4952. opacity: 0;
  4953. }
  4954. }
  4955. }
  4956. .md-content {
  4957. position: relative;
  4958. white-space: nowrap;
  4959. overflow: hidden;
  4960. text-overflow: ellipsis;
  4961. background: transparent;
  4962. opacity: 0;
  4963. height: $tooltip-height-sm;
  4964. line-height: $tooltip-height-sm;
  4965. padding-left: $tooltip-lr-padding-sm;
  4966. padding-right: $tooltip-lr-padding-sm;
  4967. @media screen and (min-width: $layout-breakpoint-sm) {
  4968. height: $tooltip-height-lg;
  4969. line-height: $tooltip-height-lg;
  4970. padding-left: $tooltip-lr-padding-lg;
  4971. padding-right: $tooltip-lr-padding-lg;
  4972. }
  4973. &.md-show-add {
  4974. transition: $swift-ease-out;
  4975. opacity: 0;
  4976. }
  4977. &.md-show, &.md-show-add-active {
  4978. opacity: 1;
  4979. }
  4980. &.md-show-remove {
  4981. transition: $swift-ease-in;
  4982. &.md-show-remove-active {
  4983. opacity: 0;
  4984. }
  4985. }
  4986. }
  4987. &.md-hide {
  4988. transition: $swift-ease-in;
  4989. }
  4990. &.md-show {
  4991. transition: $swift-ease-out;
  4992. pointer-events: auto;
  4993. transform: translate3d(0,0,0);
  4994. }
  4995. }
  4996. $virtual-repeat-scrollbar-width: 16px;
  4997. .md-virtual-repeat-container {
  4998. box-sizing: border-box;
  4999. display: block;
  5000. margin: 0;
  5001. overflow: hidden;
  5002. padding: 0;
  5003. position: relative;
  5004. .md-virtual-repeat-scroller {
  5005. bottom: 0;
  5006. box-sizing: border-box;
  5007. left: 0;
  5008. margin: 0;
  5009. overflow-x: hidden;
  5010. padding: 0;
  5011. position: absolute;
  5012. right: 0;
  5013. top: 0;
  5014. }
  5015. .md-virtual-repeat-sizer {
  5016. box-sizing: border-box;
  5017. height: 1px;
  5018. display: block;
  5019. margin: 0;
  5020. padding: 0;
  5021. width: 1px;
  5022. }
  5023. .md-virtual-repeat-offsetter {
  5024. box-sizing: border-box;
  5025. left: 0;
  5026. margin: 0;
  5027. padding: 0;
  5028. position: absolute;
  5029. right: 0;
  5030. top: 0;
  5031. }
  5032. }
  5033. .md-virtual-repeat-container.md-orient-horizontal {
  5034. .md-virtual-repeat-scroller {
  5035. overflow-x: auto;
  5036. overflow-y: hidden;
  5037. }
  5038. .md-virtual-repeat-offsetter {
  5039. // Leave room for the scroll bar.
  5040. // TODO: Will probably need to perform measurements at runtime.
  5041. bottom: $virtual-repeat-scrollbar-width;
  5042. right: auto;
  5043. white-space: nowrap;
  5044. }
  5045. }
  5046. .md-whiteframe-1dp, .md-whiteframe-z1 {
  5047. box-shadow: $whiteframe-shadow-1dp;
  5048. }
  5049. .md-whiteframe-2dp {
  5050. box-shadow: $whiteframe-shadow-2dp;
  5051. }
  5052. .md-whiteframe-3dp {
  5053. box-shadow: $whiteframe-shadow-3dp;
  5054. }
  5055. .md-whiteframe-4dp, .md-whiteframe-z2{
  5056. box-shadow: $whiteframe-shadow-4dp;
  5057. }
  5058. .md-whiteframe-5dp {
  5059. box-shadow: $whiteframe-shadow-5dp;
  5060. }
  5061. .md-whiteframe-6dp {
  5062. box-shadow: $whiteframe-shadow-6dp;
  5063. }
  5064. .md-whiteframe-7dp, .md-whiteframe-z3 {
  5065. box-shadow: $whiteframe-shadow-7dp;
  5066. }
  5067. .md-whiteframe-8dp {
  5068. box-shadow: $whiteframe-shadow-8dp;
  5069. }
  5070. .md-whiteframe-9dp {
  5071. box-shadow: $whiteframe-shadow-9dp;
  5072. }
  5073. .md-whiteframe-10dp, .md-whiteframe-z4 {
  5074. box-shadow: $whiteframe-shadow-10dp;
  5075. }
  5076. .md-whiteframe-11dp {
  5077. box-shadow: $whiteframe-shadow-11dp;
  5078. }
  5079. .md-whiteframe-12dp {
  5080. box-shadow: $whiteframe-shadow-12dp;
  5081. }
  5082. .md-whiteframe-13dp, .md-whiteframe-z5{
  5083. box-shadow: $whiteframe-shadow-13dp;
  5084. }
  5085. .md-whiteframe-14dp {
  5086. box-shadow: $whiteframe-shadow-14dp;
  5087. }
  5088. .md-whiteframe-15dp {
  5089. box-shadow: $whiteframe-shadow-15dp;
  5090. }
  5091. .md-whiteframe-16dp {
  5092. box-shadow: $whiteframe-shadow-16dp;
  5093. }
  5094. .md-whiteframe-17dp {
  5095. box-shadow: $whiteframe-shadow-17dp;
  5096. }
  5097. .md-whiteframe-18dp {
  5098. box-shadow: $whiteframe-shadow-18dp;
  5099. }
  5100. .md-whiteframe-19dp {
  5101. box-shadow: $whiteframe-shadow-19dp;
  5102. }
  5103. .md-whiteframe-20dp {
  5104. box-shadow: $whiteframe-shadow-20dp;
  5105. }
  5106. .md-whiteframe-21dp {
  5107. box-shadow: $whiteframe-shadow-21dp;
  5108. }
  5109. .md-whiteframe-22dp {
  5110. box-shadow: $whiteframe-shadow-22dp;
  5111. }
  5112. .md-whiteframe-23dp {
  5113. box-shadow: $whiteframe-shadow-23dp;
  5114. }
  5115. .md-whiteframe-24dp {
  5116. box-shadow: $whiteframe-shadow-24dp;
  5117. }
  5118. @media screen and (-ms-high-contrast: active) {
  5119. md-whiteframe {
  5120. border: 1px solid #fff;
  5121. }
  5122. }