Սա համընկնում է սեմանտիկ նպատակին՝ բնօրինակ տարրերը տալիս են ձեր կառուցվածքային ստեղնաշարի և էկրանային ընթերցողի վարքագիծը, և «գործողություն» և «նավիգացիա» բաժանելը խուսափում է շատ հասանելիության պարտքից: Երբ ձեր «կոճակ տեսք ունեցող հղումը» անջատված է, ինչպես եք դա իրականացնում, որպեսզի այն մնում է հասանելի (ներառյալ ստեղնաշարի և էկրանային ընթերցողի վարքագիծը):
Frontend
Դա կայուն հիմք-կողմնորոշված բացատրություն է, և ինձ դուր է գալիս, որ դուք տարբերում եք տեսողական կենտրոնը տիպոգրաֆիկ հիմքից; ճկուն կենտրոնացումը հաճախ ամենահզոր մոտեցումն է տարբեր ֆոնտերի միջև: Երբ դիզայնի բնութագրերը անորոշ են (օրինակ, պատկերակ-տեքստի հարմարեցումը տարբեր է կոճակների, մուտքային դաշտերի և մենյուի տարրերի միջև), ինչպես եք սահմանում և փաստաթղթավորում մեկ հարմարեցման կանոն դիզայնի համակարգում, որպեսզի թիմերը այն հետևողականորեն կիրառեն?
Սա պրագմատիկ մոտեցում է՝ տոքեններն ու համահունչ պատյանային նմուշը կանխում են «մեկանգամյա» ուղղումները և դարձնում են հարմարեցման որոշումները ստուգելի՝ Storybook-ում: Ինչպե՞ս եք որոշում, երբ տեսողական «նյարդը» (օրինակ՝ ձեր -2px կարգավորումը) պատկանում է որպես գլոբալ տոքեն, այլ ոչ թե որպես կոմպոնենտի սահմանափակ բացառություն, և ինչպես եք կառավարում այդ որոշումը։
Հասկացա, Dmytro։ Փոքր նշում՝ դու ասել էիր «թերություններ» — արդյոք նկատի ունեիր «հրովի նշաններ»։ Իրական հավելվածում, ինչպես կբացատրեիր այս վարքագիծը գործընկերոջը, որպեսզի նրանք պատահականորեն չխախտեն հասանելիությունը՝ բարելավելով կատարողականությունը։
Ներմուծում եմ — դուք ընդգրկում եք տեսողական տարրերը, ինչպես նաև ստեղնաշարի և SR վարքագիծը, և այն հեռացնելը տաբ կարգում հաճախ ճիշտ որոշում է անջատվածի նման հղման համար: Երբ դուք իրականացնում եք այս «անջատված հղումը», ինչպիսիք են ARIA/ատրիբուտների ճշգրիտ ձևանմուշները էկրանային ընթերցողների համար (օրինակ, `aria-disabled`, դերերի փոփոխություններ), և ինչպես եք պահպանում հայտարարության համընկնումը տարբեր բրաուզերների միջև?
Ի՞նչ եք փնտրում ձեր հաջորդ դերում:
Dmytro, երբ դու կառուցում ես հարմարեցված կոճակի կոմպոնենտ, ի՞նչ սեմանտիկ HTML տարր ես ընտրում ըստ նախնական, և ինչ դեպքերում կօգտագործես այլ բան:
Վերջապես, CSS-ը հիմնական տեխնոլոգիա է առջևի-end զարգացման մեջ, որը հնարավորություն է տալիս ծրագրավորողներին վերահսկել վեբ հավելվածների դասավորությունը, ոճը և տեսողական ներկայացումը: Ով առաջարկեց CSS-ը և ինչ թվականին այն առաջին անգամ ներկայացվեց?
Ի՞նչ ձեռքբերում եք առավել հպարտ վերջին տարվա ընթացքում։
Լավ—վերջապես այն որպես տոքենիզացված դասավորության հարց եք դիտարկում և հույս եք դնում `gap`-ի վրա, ինչը սովորաբար ամենահեշտ և պահպանվող միջոցն է՝ պահելու ռիթմը կայուն տարբեր կոմպոնենտների միջև։ Ինչպե՞ս եք հասնում SVG պատկերակ և տեքստ միջև բրաուզերների միջև հստակ պիքսելային տիպոգրաֆիկ հարմարեցում—դու հույս դնո՞ւմ եք `line-height`, `vertical-align`, ճկուն հարմարեցում կամ այլ բան։
Կարճ պատմեք այն բանի մասին, ինչ եք օգտագործում ձեր ամենօրյա աշխատանքի ընթացքում։
Սա հստակ հիմնավորում է, Դմիտրո, և ձեր «նստեցված տարրերը բաց թողնել» կանոնը լավ արտահայտված է: Կարող եք նկարագրել կոնկրետ իրավիճակ, երբ այս մոտեցումը կարող է շփոթեցնել օգտվողներին, և ինչպես կկարգավորեք արտահայտությունը կամ UI-ն ավելի հստակ դարձնելու համար?
Արագ բացատրություն, Dmytro—լավ օգտագործում է դելեգացիան և "մոտակա" ստուգումները; ձեր հոսքը հեշտ է հետևել: Երբ ասում եք, որ նույն կերպ եք կառավարում ստեղնաշարը, կարող եք ինձ մանրամասն բացատրել, թե որ կոճակները եք աջակցում և ինչպես եք կանխում, որ ֆոկուսը ընկնի անգործող հղումների վրա:
Հետևյալը՝ երբ նախագծում եք հանրային կոմպոնենտների գրադարան, արդյոք դուք բացահայտում եք props-ները որպես `interface` կամ `type`, և ինչպես եք գնահատում ընդլայնելիությունը (միավորումը/ավելացումը) համեմատած
TypeScript-ում, ինչ է գործնական տարբերությունը `interface` և `type` միջև, և երբ եք նախընտրում մեկը մյուսի փոխարեն:
Նկարագրեք բարդ զիջում, որի հետ եք բախվել։
Սա իմաստ ունի—հանրային պայմանագրի փակ պահելը խուսափում է API-ի անսպասելի փոփոխություններից, և diskriminated միավորումները ուժեղ պատճառ են `type`-ը նախընտրելու համար: Երբ դուք իրականացնում եք այդ կոճակը, որպեսզի այն լինի pixel-perfect և պատասխանատու, ինչպես եք դուք կառավարում տարածությունը և հարմարեցումը, որպեսզի icon+label-ը տեսողականորեն համահունչ մնա տարբեր ընդհատումների և տառաչափի փոփոխությունների դեպքում?
Խնդրում եմ, ներկայացրեք ինքներդ և կարճ պատմեք ձեր փորձի մասին։