From af562e058d1c4d59c786b1385d6677bf1fb80e75 Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez Date: Tue, 12 Aug 2025 13:14:46 +0200 Subject: [PATCH 1/4] Add repsonsive guidelines documentation to the site --- .../overview/AccordionOverviewPage.tsx | 17 +++++++- .../alert/overview/AlertOverviewPage.tsx | 20 +++++++++ .../card/overview/CardOverviewPage.tsx | 22 ++++++++-- .../overview/DataGridOverviewPage.tsx | 38 ++++++++++++++++++ .../overview/images/datagrid_fullWidth.png | Bin 0 -> 70394 bytes .../overview/images/datagrid_reduced.png | Bin 0 -> 11566 bytes .../header/overview/HeaderOverviewPage.tsx | 10 ++++- .../images/header_responsive_details.png | Bin 0 -> 1765 bytes .../nav-tabs/overview/NavTabsOverviewPage.tsx | 15 +++++++ .../overview/images/navtabs_responsive.png | Bin 0 -> 2235 bytes .../overview/PaginatorOverviewPage.tsx | 11 +++++ .../overview/QuickNavOverviewsPage.tsx | 15 +++++++ .../overview/ResultsetTableOverviewPage.tsx | 32 +++++++++++++++ .../images/resultset_table_overflow.png | Bin 0 -> 9662 bytes .../images/resultset_table_responsive.png | Bin 0 -> 10225 bytes .../sidenav/overview/SidenavOverviewPage.tsx | 12 +++--- .../overview/images/sidenav_responsive.png | Bin 7981 -> 2625 bytes .../wizard/overview/WizardOverviewPage.tsx | 22 ++++++++++ .../foundations/spacing/SpacingPage.tsx | 25 ++++++++++++ .../screens/principles/layout/LayoutPage.tsx | 34 ++++++++++++++++ 20 files changed, 262 insertions(+), 11 deletions(-) create mode 100644 apps/website/screens/components/data-grid/overview/images/datagrid_fullWidth.png create mode 100644 apps/website/screens/components/data-grid/overview/images/datagrid_reduced.png create mode 100644 apps/website/screens/components/header/overview/images/header_responsive_details.png create mode 100644 apps/website/screens/components/nav-tabs/overview/images/navtabs_responsive.png create mode 100644 apps/website/screens/components/resultset-table/overview/images/resultset_table_overflow.png create mode 100644 apps/website/screens/components/resultset-table/overview/images/resultset_table_responsive.png diff --git a/apps/website/screens/components/accordion/overview/AccordionOverviewPage.tsx b/apps/website/screens/components/accordion/overview/AccordionOverviewPage.tsx index 44f3c93204..ced4e45d76 100644 --- a/apps/website/screens/components/accordion/overview/AccordionOverviewPage.tsx +++ b/apps/website/screens/components/accordion/overview/AccordionOverviewPage.tsx @@ -1,4 +1,4 @@ -import { DxcBulletedList, DxcFlex, DxcParagraph } from "@dxc-technology/halstack-react"; +import { DxcBulletedList, DxcFlex, DxcLink, DxcParagraph } from "@dxc-technology/halstack-react"; import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import DocFooter from "@/common/DocFooter"; @@ -8,6 +8,7 @@ import Example from "@/common/example/Example"; import basicExample from "./examples/basicExample"; import nestedExample from "./examples/nestedExample"; import placement from "./images/accordion_placement.png"; +import Link from "next/link"; const sections = [ { @@ -189,6 +190,20 @@ const sections = [ }, ], }, + { + title: "Responsive behavior", + content: ( + <> + + Documented already under{" "} + + Mobile + {" "} + section. + + + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/components/alert/overview/AlertOverviewPage.tsx b/apps/website/screens/components/alert/overview/AlertOverviewPage.tsx index 77636b994e..17bdc01c79 100644 --- a/apps/website/screens/components/alert/overview/AlertOverviewPage.tsx +++ b/apps/website/screens/components/alert/overview/AlertOverviewPage.tsx @@ -297,6 +297,26 @@ const sections = [ }, ], }, + { + title: "Responsive behavior", + content: ( + <> + + All types of alerts (banner, dialog, inline) follow the spacing margins of the application. + + + + Be sure to consider content length when designing for smaller screen sizes. + + Alerts grow vertically to display the full content. + + Know the type of screen sizes you will be designing for and consider messaging length for these as well (ex. + be concise when designing for mobile in consideration of limited screen space). + + + + ), + }, { title: "Best practices", subSections: [ diff --git a/apps/website/screens/components/card/overview/CardOverviewPage.tsx b/apps/website/screens/components/card/overview/CardOverviewPage.tsx index 8c5323fff8..54bfe7d7c6 100644 --- a/apps/website/screens/components/card/overview/CardOverviewPage.tsx +++ b/apps/website/screens/components/card/overview/CardOverviewPage.tsx @@ -66,9 +66,9 @@ const sections = [ Image placement: cards support placing the image either on the left or the right side of the layout. The image should maintain a fixed ratio and size for visual harmony. By default, the component provides layout options where the image can appear on the left or right side of the content. However, - alternative layouts —such as vertical image placements — can be achieved by placing the image directly within - the custom content area. This allows for more flexibility while still adhering to spacing and alignment - guidelines. + alternative layouts —such as vertical image placements — can be achieved by placing the image directly + within the custom content area. This allows for more flexibility while still adhering to spacing and + alignment guidelines. Text content: titles, descriptions, metadata, or status labels are typically placed in the @@ -87,6 +87,22 @@ const sections = [ ), }, + { + title: "Responsive behavior", + content: ( + <> + + The card component can automatically adjust to the size of its parent component (ex. container, flexbox, + grid). Consider using the compact variants of the card if you are planning to accommodate smaller screen sizes + to minimize the space it occupies. + + + Note also that the width of a card can be fixed, to avoid changing how the contents inside are displayed, when + needed. + + + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx b/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx index b2dde9228d..80cff92944 100644 --- a/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx +++ b/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx @@ -4,6 +4,9 @@ import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import DocFooter from "@/common/DocFooter"; import Image from "@/common/Image"; import anatomy from "./images/datagrid-anatomy.png"; +import reducedDataGrid from "./images/datagrid_reduced.png"; +import fullWidthDataGrid from "./images/datagrid_fullWidth.png"; +import Figure from "@/common/Figure"; const sections = [ { @@ -197,6 +200,41 @@ const sections = [ }, ], }, + { + title: "Responsive behavior", + content: ( + <> + + The datagrid’s size adjusts based on the default behavior of its parent component (ex. container, flexbox, + grid). + + + + When placing a datagrid inside a parent component, adjusting the parent component’s width also + correspondingly adjusts datagrid width up to a certain extent. A datagrid’s minimum width based on the + content of the column headers and the number of columns it has. + + + Using the overflow property of the parent container allows scrollbars to appear to provide for horizontal + and vertical adjustments. Careful planning for structuring large datagrids (such as using a combination of + managing column counts, using expandable content, or even resizeable columns) can help minimize over + reliance on scrollbars to display a lot of information. + + + For smaller screen sizes, managing information density becomes even more important because of limited space. + Leveraging features such as allowing for expandable rows or managing the number of columns during initial + display can go a long way towards maintaining a clean and manageable datagrid. + + +
+ Full width data grid +
+
+ Reduced data grid +
+ + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/components/data-grid/overview/images/datagrid_fullWidth.png b/apps/website/screens/components/data-grid/overview/images/datagrid_fullWidth.png new file mode 100644 index 0000000000000000000000000000000000000000..72bf10bad608db324a6b7de44d7d9a1929bcfca7 GIT binary patch literal 70394 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 @@ -87,8 +88,13 @@ const sections = [ maintain the core structure and visual hierarchy of the desktop version, ensuring a consistent and intuitive user experience across all devices. + Header menu responsive version + + The behavior of the more compact header follows the standard expandable menu button with all header links + displayed once the icon is clicked. +
- Header menu responsive version + Header menu responsive version
), diff --git a/apps/website/screens/components/header/overview/images/header_responsive_details.png b/apps/website/screens/components/header/overview/images/header_responsive_details.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf81b7d25f622bccc4912055039e514cca6ac70 GIT binary patch literal 1765 zcmc(fSx}Q#6vyv}VF@Tu@*oNV9gz-8NJeTSWr<-iL=jm8Du@K=hyn&e1d%1AfYOXs zsmdlGZ3Sdsl(2{h)e*{sfGwmXN+qD4zTPPlGz5s0MhVu+94QSc*KZn5q9p`bB0e}uh^&#L!u_644Fnq}_pnkyk zC3H}cq(dYCny%=qgsB6dkxX$T9Z5o@BBvO?KttAqc)NVWiqWUB?Ni+2aA@;>Di-qcN$b!)x=hC?n9A zUX22tWppK_I&b7=O04vVQ^EkQ>?v`zIZjMDha<|E!ycl$*qPt8sc?qV^#+cg z%#E`olumh@*bEzhSIaivX|P7{U8C45_Q_naZ-n9f*>RjizC zBz567hk15Sc^HtOW&4|TFFO}4=w3jI16qi*J(oneT;9Y2>8P*M-cd`s$jIy3?4xm^ zLld)@qc?*Ff^8To5R`Ad-4*Pw*YUz}BKP9OokSw-6oY^(GNBD#n;h#~iXV$Rw;r>T zrzdWsM<&cQA*_7#zbd2nl|R#GuJ7X^!Hz$O>H=A|J{|bU=fRV0S#RPDjyb0FAFL)H zx`MEzD#dx9p>cyQqVDaxr8M?($F1fjFO$oqcU;ZK#~D zP?p3O5A^ChvTRh-U{UsJ8iK^I;kSgtOh&Wq@#xbJM(kU?UF^p#EK3K2u|!*$B-kuh z&T9QpY#%yhbvRY-yd>XsLw;w5%e&K=ETHgL6^u-T6 + + The size of the Nav tabs display is directly related to the size of the parent component (ex. flex or + container). When screen sizes are adjusted to smaller resolutions, with the decrease in screen width, a + scrollable variant is activated if the minimum width is exceeded for the Nav tabs component.{" "} + + Responsive nav tabs + + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/components/nav-tabs/overview/images/navtabs_responsive.png b/apps/website/screens/components/nav-tabs/overview/images/navtabs_responsive.png new file mode 100644 index 0000000000000000000000000000000000000000..8f60e5a1fe81ecee61bfbf8030df3c6de9d7bb15 GIT binary patch literal 2235 zcmdT_`B#%y8va7UCb2C>b_6XII%?S>ghdD_0y+{L1w@1pOl>#@32h39gd{}4Mxn8` ziV%{3bV?B}bkmf2XH25y#F(I?3OV1;J?Mmxk45bV z8V8+UfEO4cJSH3fnpsxHG*bYuIC>}|JnlSXVe0Rsc%p-NnUGs%Vv1>td&q%VgG^6YyJ|vb&JEZu%Pfha|xF+t?E5ZD@2GTw)2?@7TVpDCD>n$ZnOfjLd-x+UXn)vF2VI|r15f}s z$^gJ_s$dW}0EAhZfYsBtz`VgnJO2j*O3Y-N1X!VKBvB z>irovt}1wMg+4i{f9{r)I1De21i_;^6}e4IA;+J-IN9|*3ZM)L3E-qnJKT0?FVQ2 z>RGd!*{nR3W*eWfp-#oy&)!C>TW{~vg>!**+D!iS4dE5v{pM%#@&Y|mI)-1tB;Q|( zi=6vmEXF8OI}g1l)n&$DvTyZyTw=rl1_H4DQNk%XNVEd%u@_!S2y-@F`SYm9SRs$rS9Vztye8kt3v5`ID#thX>#T_deI(bPG~-h`YP{G#EK;r=nf6u3W_gTzH*+1cUMSu*qGR7&&qg zG7$zq?|yguidHk!&qR1s96VLLc-7A9w02G^h1t_L_IQZ!c)X9F-$><=Cz^kXC~NoH z{q3tZ!@OmV4&wI2$GwVnvSxaa6D-XpI&{A!U`>|N-Uf$iqoW?y<b5Jdx;P z=3?&`phSs_Q7F{drPEGtE(qRp)SHzxCAMEfqit(oxheIZ&`Uj_=QA?)OjIcr`t + Selecting the right type of paginator is important – particularly for applications that may be displayed in + smaller screen sizes. Configurations with a simple navigation can go a long way towards reducing cognitive load + and visual clutter (ex. simply show what page the user is on or limit interactive elements to the page selection + dropdown for navigation). + + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/components/quick-nav/overview/QuickNavOverviewsPage.tsx b/apps/website/screens/components/quick-nav/overview/QuickNavOverviewsPage.tsx index aa4af3f447..0d9a310c22 100644 --- a/apps/website/screens/components/quick-nav/overview/QuickNavOverviewsPage.tsx +++ b/apps/website/screens/components/quick-nav/overview/QuickNavOverviewsPage.tsx @@ -43,6 +43,21 @@ const sections = [ ), }, + { + title: "Responsive behavior", + content: ( + <> + + When designing applications that contain a quick nav for smaller screens, make sure to set a minimum width for + the main content so that the quick nav does not overwhelm the main content. + + + Also consider hiding this component once a specific breakpoint has been reached to allow users to focus on the + primary content. + + + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/components/resultset-table/overview/ResultsetTableOverviewPage.tsx b/apps/website/screens/components/resultset-table/overview/ResultsetTableOverviewPage.tsx index 218ca03dda..38a96c20ca 100644 --- a/apps/website/screens/components/resultset-table/overview/ResultsetTableOverviewPage.tsx +++ b/apps/website/screens/components/resultset-table/overview/ResultsetTableOverviewPage.tsx @@ -4,7 +4,10 @@ import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import DocFooter from "@/common/DocFooter"; import Code from "@/common/Code"; import anatomy from "./images/resultset_table_anatomy.png"; +import resultsetTableOverflow from "./images/resultset_table_overflow.png"; +import resultsetTableResponsive from "./images/resultset_table_responsive.png"; import Image from "@/common/Image"; +import Figure from "@/common/Figure"; const sections = [ { @@ -129,6 +132,35 @@ const sections = [ }, ], }, + { + title: "Responsive behavior", + content: ( + <> + + Changes to the screen size affects tables based on the default behavior of their parent components (ex. + container, flexbox, grid). + + + + When placing a table inside a container component that adjusts based on screen width, the table’s width also + correspondingly adjusts up to a certain minimum value based on its content and the number of columns. + Resultset table overflow + + + Using the overflow property of the container (to account for both horizontal and vertical adjustments) is + one way to preserve the size of the display of the table while using scrollbars for the adjustments needed + in place of continuous resizing. + Resultset table responsive + + + Consider using the reduced mode for tables that are information dense and need to minimize the spacing in + between table cells. This can help accommodate more information as the screen size is reduced up to a + certain extent. + + + + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/components/resultset-table/overview/images/resultset_table_overflow.png b/apps/website/screens/components/resultset-table/overview/images/resultset_table_overflow.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8f1ba7c5cde08b56f99d40266ead0c6a020393 GIT binary patch literal 9662 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 Zmy{XZZFL<-A4C2Fn)h`7F1m|&{Xe??FkS!v literal 0 HcmV?d00001 diff --git a/apps/website/screens/components/resultset-table/overview/images/resultset_table_responsive.png b/apps/website/screens/components/resultset-table/overview/images/resultset_table_responsive.png new file mode 100644 index 0000000000000000000000000000000000000000..3292203c390fb46ca920a48e7f041d2f0517640d GIT binary patch literal 10225 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 GgZ~45i(`%e literal 0 HcmV?d00001 diff --git a/apps/website/screens/components/sidenav/overview/SidenavOverviewPage.tsx b/apps/website/screens/components/sidenav/overview/SidenavOverviewPage.tsx index 914c32f76e..97a5f88c51 100644 --- a/apps/website/screens/components/sidenav/overview/SidenavOverviewPage.tsx +++ b/apps/website/screens/components/sidenav/overview/SidenavOverviewPage.tsx @@ -131,11 +131,13 @@ const sections = [ content: ( <> - On mobile and tablet screens, the sidenav becomes an{" "} - overlay panel that can be toggled open or closed. This responsive version ensures that - navigation remains accessible without occupying valuable screen space. Users can open the sidenav using a - dedicated menu icon, and close it either by interacting with the backdrop or selecting a navigation - option. This enhances usability and maintains focus on content in smaller viewports. + The sidenav can be adjusted to minimize its display for smaller resolutions, thus providing more space to + display the application content. We recommend using a breakpoint of 720px to trigger the more compact view + for tablet and mobile resolutions. + + + In the compact view, the sidenav is collapsed into a single row at the top of the page with an expandable + icon to show the full list of sidenav content when triggered. Responsive sidenav diff --git a/apps/website/screens/components/sidenav/overview/images/sidenav_responsive.png b/apps/website/screens/components/sidenav/overview/images/sidenav_responsive.png index de7c1cc91681b3de685eb9084b488f16db8d580b..6e1c121e35e80e236bc4e803df3c3031a3e18d4b 100644 GIT binary patch literal 2625 zcmeAS@N?(olHy`uVBq!ia0y~yU_QXWz?i|o1{9gWHpvi3aTa()7Bet#3xhBt!>l*8o|0J>kHC*#_aSW+oe0z7JuX3hL`@?==MUe** zv8?YJ<>utNNpEr7HnVy``^pC{K8zO688Vl4^KksOnfJX?CHpe3+l=t~kF&e4n==Cq z7JIjz5o8$?(8>lDMji$Rhb9J~(-a&TfYK8b8i2AM0tbLfR5%iVq!5b%kmMXyUSMgl zBfkE>97Dj@-}B=i%l!QJ%)0O6oNBh8eZ_wxtF!bD0K;kE!>r)rue5@I^XJb$e)TGA zN=$q_Kf|qi`~Tlt8@9Tz@86&Q+4mpToX^|-`^R^Q^E=Zgthab(9Pxk&Uowc{V_^7J zRa5il$D88n>faw5lRxkrO03|$Bv`>K#NZm&?9zB$p)f11`HL|q4CYrq5 z0oxvZ@w#((t-zaK4m}0>J}n<;fA9^U{nHNNH45U|15(C+=5XW7c?qmiz|5R9Ynh?@ z>#tP@WOm@qzF`X(84?uN=pL@a?|IP-28M`^%vr}|BA2J>fnp4IVW541fnkHdwP}g= z;^6qjQBWM@GGSoQIb!0Q+_xs!Seyv^IkHc0n2*=zIcz$u zc#Q&w%qldgI#buML(3coXOv2WEx?P7%>1u~GVx`RRf zVAfVCeSLjk`(WRzzvUhec0dyKj*41ipz4H&_|y1k8v{r6&{EHst+3{i-2LPoz+hzX MboFyt=akR{0C61aD*ylh literal 7981 zcmeAS@N?(olHy`uVBq!ia0y~yU~gbxVEV$r1{8U#skIGAaTa()7Beu2se&-0XOPMV zpde#$kh>GZx^prwfgF}}M_)$E)e-c?47~~Flx;TbZFuu9FG51Y`nCr#WjH%NP z2T1WG=(HLdYBcpZ82U(TI`)@gv*vUYlZ@Sg)4W>O{k`t>s44$(gZ}Zt8eX88AmIN# zo*BY&Xky@jumlttpkgi@2OvTWf=mWbWi6x1Kp`<2AmH>cnnJ+AFwj{>=kt<(pWoZF z10A!Y|Np=D=N}gC$!0KpcOrSGvO}+RQM}jzuscW7E!ia-sMI_wyen=!^XpxFz`(p; zKJWPli+iRGvra!XvgxyCy0Sz0dnzMs%FvBqWBp&heVhC4;pflA3_t$vP-d`2#46dY z(*Xs@fy-6Z)w8RA{P`opP-p*+!=axQR@@&sT__X(x#iE3dHdJAwgRfHxnDW&@Z*Z> z3|V^9Pk*p@#}V+j@6L3%dPMa=q?jS&i z0aN;c?{lA9+MIj+`ZdFp9m@SrYh}P`?eDM;2c)PM*}H!~KSO;wjfyHF8;>80WR73A zS@`;^)dr-@|M}N1D+X0ywN)w44k}*?>=8vA`7KaLNyKn~_xC=2`~2J67F}8N;AxB$I{Fk z^&^%6nbCNpTU}1mv^qNe2Fm^eJ-RX)3!||xI^GMeh^ai@tHbR7rr-V_sEM)f{q^zeuoOcBCu|(aKoK@tF&(N1m>JF6*2UngBe1MKb^Z diff --git a/apps/website/screens/components/wizard/overview/WizardOverviewPage.tsx b/apps/website/screens/components/wizard/overview/WizardOverviewPage.tsx index 1e7fc62694..5e3927d31b 100644 --- a/apps/website/screens/components/wizard/overview/WizardOverviewPage.tsx +++ b/apps/website/screens/components/wizard/overview/WizardOverviewPage.tsx @@ -153,6 +153,28 @@ const sections = [ }, ], }, + { + title: "Responsive behavior", + content: ( + <> + + The size of the Wizard display is directly related to the size of the parent component (ex. flex or + container). + + There are two options for displaying the Wizard for more compact widths: + + + Compact variant: The default (or preferred ) responsive execution reduces the wizard to + just the numbered steps for more compact screens. + + + Scrollable full-text Wizard: makes use of the parent container to create a horizontally + scrollable box that allows users to see the full numbers and text. + + + + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/foundations/spacing/SpacingPage.tsx b/apps/website/screens/foundations/spacing/SpacingPage.tsx index 4c81e05076..bcb38905ee 100644 --- a/apps/website/screens/foundations/spacing/SpacingPage.tsx +++ b/apps/website/screens/foundations/spacing/SpacingPage.tsx @@ -258,6 +258,31 @@ const sections = [ }, ], }, + { + title: "Responsive behavior", + content: ( + <> + + Both fixed and fluid spacing behaviors play an important role in determining the placement of components when + adjusting screen sizes. + + + + Fixed spacing can affect an application in ways such as when a minimum width is reached, + scrollbars can appear on the application or screen elements can stop adjusting based on available space. + This approach can be used for more structured layouts where it is important to maintain a fixed structure in + order to display information properly. + + + Fluid spacing is often more suited to smaller screens where elements have more flexibility + to move around the screen. This can be seen in examples such as reducing the number of columns in a form + from two columns into just one or the form of components that follow a line-breaking behavior allowing for a + more vertical flowing approach to component layouts. + + + + ), + }, { title: "Best practices", content: ( diff --git a/apps/website/screens/principles/layout/LayoutPage.tsx b/apps/website/screens/principles/layout/LayoutPage.tsx index d7aa977dab..6fdb84cc2f 100644 --- a/apps/website/screens/principles/layout/LayoutPage.tsx +++ b/apps/website/screens/principles/layout/LayoutPage.tsx @@ -237,6 +237,40 @@ const sections = [ }, ], }, + { + title: "Responsive behavior", + content: ( + <> + + Understanding and implementing the appropriate grid, breakpoint, and column/margin/gutter specifications all + contribute to how the application adjusts to different screen sizes. While these higher-level components + determine the overall responsive behavior of the application, adjustments can also be made at a smaller + component level within the layout. + + Here are some important considerations when designing for responsiveness: + + + Consider the actual device/screen use cases. If the application is designed exclusively for desktop, + consider what the minimum resolution is, then plan accordingly. + + + For applications that are focused on supporting tablet or mobile designs, make sure to design for and test + the application across all expected screens sizes and orientations. Please refer to{" "} + + Breakpoints + {" "} + section. Consider the density of screen elements, the structure (ex. number of columns), and even the actual + components needed (ex. when to use different types and variations of tables and data grids). + + + There are also cases where mobile is the default resolution for the application. In this case consider how + the application’s contents grows based on changing screen sizes (such as all the different sizes of mobile + and tablet devices). + + + + ), + }, ]; export default function LayoutPage() { From 3dc51526c74876e9c0c4f6c7c201193d43e031ae Mon Sep 17 00:00:00 2001 From: Raquel Arrojo Lopez Date: Wed, 13 Aug 2025 08:31:46 +0200 Subject: [PATCH 2/4] Change import --- .../components/nav-tabs/overview/NavTabsOverviewPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx b/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx index 151f8a72af..202c299e26 100644 --- a/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx +++ b/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx @@ -4,7 +4,7 @@ import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import Image from "@/common/Image"; import navTabsAnatomy from "./images/navTabs_anatomy.png"; -import responsiveNavTabs from "./images/navTabs_responsive.png"; +import responsiveNavTabs from "./images/navtabs_responsive.png"; import Link from "next/link"; import Example from "@/common/example/Example"; import icons_top from "./examples/icons_top"; From 2ea0c6166ff0783bd08e445f4661df07d0e89f73 Mon Sep 17 00:00:00 2001 From: Jialecl Date: Tue, 19 Aug 2025 10:59:31 +0200 Subject: [PATCH 3/4] some improvements and corrections to the documentation. --- .../overview/AccordionOverviewPage.tsx | 24 ++++--------------- .../alert/overview/AlertOverviewPage.tsx | 19 ++++++++------- .../card/overview/CardOverviewPage.tsx | 12 ++-------- .../overview/DataGridOverviewPage.tsx | 19 ++++----------- .../header/overview/HeaderOverviewPage.tsx | 16 +++++-------- .../nav-tabs/overview/NavTabsOverviewPage.tsx | 6 ++--- .../sidenav/overview/SidenavOverviewPage.tsx | 7 +----- .../wizard/overview/WizardOverviewPage.tsx | 22 ----------------- .../foundations/spacing/SpacingPage.tsx | 16 ++++++------- 9 files changed, 38 insertions(+), 103 deletions(-) diff --git a/apps/website/screens/components/accordion/overview/AccordionOverviewPage.tsx b/apps/website/screens/components/accordion/overview/AccordionOverviewPage.tsx index ced4e45d76..0a94c92854 100644 --- a/apps/website/screens/components/accordion/overview/AccordionOverviewPage.tsx +++ b/apps/website/screens/components/accordion/overview/AccordionOverviewPage.tsx @@ -174,20 +174,6 @@ const sections = [ ), }, - { - title: "Mobile", - content: ( - <> - - In small devices, extremely long pages are detrimental to the user experience. Collapsing information - minimises excessive scrolling and gives an overview of the structure and content available on the page. - - - In mobile use 100% of the available screen width - - - ), - }, ], }, { @@ -195,12 +181,12 @@ const sections = [ content: ( <> - Documented already under{" "} - - Mobile - {" "} - section. + In small devices, extremely long pages are detrimental to the user experience. Collapsing information + minimises excessive scrolling and gives an overview of the structure and content available on the page. + + In mobile use 100% of the available screen width + ), }, diff --git a/apps/website/screens/components/alert/overview/AlertOverviewPage.tsx b/apps/website/screens/components/alert/overview/AlertOverviewPage.tsx index 17bdc01c79..4642493e40 100644 --- a/apps/website/screens/components/alert/overview/AlertOverviewPage.tsx +++ b/apps/website/screens/components/alert/overview/AlertOverviewPage.tsx @@ -53,21 +53,25 @@ const sections = [ it easy for users to grasp its importance at a glance.
- Description: the detailed text within the alert that provides context or additional - information about the message, ensuring clarity for the user. + Pagination: a navigation element that allows users to browse multiple alerts within the + same container, useful for managing sequential or grouped notifications. Divider: a subtle separator that visually organizes the alert's content, enhancing readability and distinguishing the pagination element from the closable action. - Pagination: a navigation element that allows users to browse multiple alerts within the - same container, useful for managing sequential or grouped notifications. + Close action: an interactive button placed next to the pagination (if there's any) that + allows the user to dismiss the alert. Actions: interactive buttons placed within the alert that enable users to take relevant actions in response to the message, such as dismissing, acknowledging, or navigating to further details. + + Description: the detailed text within the alert that provides context or additional + information about the message, ensuring clarity for the user. + ), @@ -301,17 +305,14 @@ const sections = [ title: "Responsive behavior", content: ( <> - - All types of alerts (banner, dialog, inline) follow the spacing margins of the application. - Be sure to consider content length when designing for smaller screen sizes. Alerts grow vertically to display the full content. - Know the type of screen sizes you will be designing for and consider messaging length for these as well (ex. - be concise when designing for mobile in consideration of limited screen space). + Keep in mind the screen size where the alert will appear, and take into account the length of the + description it contains. diff --git a/apps/website/screens/components/card/overview/CardOverviewPage.tsx b/apps/website/screens/components/card/overview/CardOverviewPage.tsx index 54bfe7d7c6..a9aed1e139 100644 --- a/apps/website/screens/components/card/overview/CardOverviewPage.tsx +++ b/apps/website/screens/components/card/overview/CardOverviewPage.tsx @@ -83,7 +83,7 @@ const sections = [ card should be easy to scan and act upon. - Card's example + {/* Card's example */} ), }, @@ -91,15 +91,7 @@ const sections = [ title: "Responsive behavior", content: ( <> - - The card component can automatically adjust to the size of its parent component (ex. container, flexbox, - grid). Consider using the compact variants of the card if you are planning to accommodate smaller screen sizes - to minimize the space it occupies. - - - Note also that the width of a card can be fixed, to avoid changing how the contents inside are displayed, when - needed. - + The card component will adjust to the size of its parent container. ), }, diff --git a/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx b/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx index 80cff92944..c926f72951 100644 --- a/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx +++ b/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx @@ -204,10 +204,7 @@ const sections = [ title: "Responsive behavior", content: ( <> - - The datagrid’s size adjusts based on the default behavior of its parent component (ex. container, flexbox, - grid). - + The datagrid’s size adjusts to the available space. When placing a datagrid inside a parent component, adjusting the parent component’s width also @@ -215,10 +212,10 @@ const sections = [ content of the column headers and the number of columns it has. - Using the overflow property of the parent container allows scrollbars to appear to provide for horizontal - and vertical adjustments. Careful planning for structuring large datagrids (such as using a combination of - managing column counts, using expandable content, or even resizeable columns) can help minimize over - reliance on scrollbars to display a lot of information. + The Datagrid will adjust its own scroll based on the content and the avalaible space. Careful planning for + structuring large datagrids (such as using a combination of managing column counts, using expandable + content, or even resizeable columns) can help minimize over reliance on scrollbars to display a lot of + information. For smaller screen sizes, managing information density becomes even more important because of limited space. @@ -226,12 +223,6 @@ const sections = [ display can go a long way towards maintaining a clean and manageable datagrid. -
- Full width data grid -
-
- Reduced data grid -
), }, diff --git a/apps/website/screens/components/header/overview/HeaderOverviewPage.tsx b/apps/website/screens/components/header/overview/HeaderOverviewPage.tsx index c0979ca205..4eeffad4fb 100644 --- a/apps/website/screens/components/header/overview/HeaderOverviewPage.tsx +++ b/apps/website/screens/components/header/overview/HeaderOverviewPage.tsx @@ -83,19 +83,15 @@ const sections = [ content: ( <> - Since applications are accessed from a variety of devices, including laptops, tablets, and smartphones, it's - essential to design a Header that adapts fluidly to different screen sizes. The responsive Header should - maintain the core structure and visual hierarchy of the desktop version, ensuring a consistent and intuitive - user experience across all devices. + Applications are accessed on a wide range of devices, including laptops, tablets, and smartphones. To support + this, the header must be designed to scale responsively across screen sizes. The responsive header should + preserve the structural layout and visual hierarchy of the desktop version, ensuring consistency and usability + across all platforms. - Header menu responsive version - The behavior of the more compact header follows the standard expandable menu button with all header links - displayed once the icon is clicked. + “On smaller screens, the header content is replaced by a button. Triggering this button opens a menu that + displays custom content.” -
- Header menu responsive version -
), }, diff --git a/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx b/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx index 202c299e26..2a869087e8 100644 --- a/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx +++ b/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx @@ -153,11 +153,9 @@ const sections = [ content: ( <> - The size of the Nav tabs display is directly related to the size of the parent component (ex. flex or - container). When screen sizes are adjusted to smaller resolutions, with the decrease in screen width, a - scrollable variant is activated if the minimum width is exceeded for the Nav tabs component.{" "} + The size of the navigation tabs adjusts according to the container. On smaller screen resolutions, if the + content exceeds the available space, a scroll bar will appear. - Responsive nav tabs ), }, diff --git a/apps/website/screens/components/sidenav/overview/SidenavOverviewPage.tsx b/apps/website/screens/components/sidenav/overview/SidenavOverviewPage.tsx index 97a5f88c51..b74632a214 100644 --- a/apps/website/screens/components/sidenav/overview/SidenavOverviewPage.tsx +++ b/apps/website/screens/components/sidenav/overview/SidenavOverviewPage.tsx @@ -131,12 +131,7 @@ const sections = [ content: ( <> - The sidenav can be adjusted to minimize its display for smaller resolutions, thus providing more space to - display the application content. We recommend using a breakpoint of 720px to trigger the more compact view - for tablet and mobile resolutions. - - - In the compact view, the sidenav is collapsed into a single row at the top of the page with an expandable + In smaller screens, the sidenav is collapsed into a single row at the top of the page with an expandable icon to show the full list of sidenav content when triggered. Responsive sidenav diff --git a/apps/website/screens/components/wizard/overview/WizardOverviewPage.tsx b/apps/website/screens/components/wizard/overview/WizardOverviewPage.tsx index 5e3927d31b..1e7fc62694 100644 --- a/apps/website/screens/components/wizard/overview/WizardOverviewPage.tsx +++ b/apps/website/screens/components/wizard/overview/WizardOverviewPage.tsx @@ -153,28 +153,6 @@ const sections = [ }, ], }, - { - title: "Responsive behavior", - content: ( - <> - - The size of the Wizard display is directly related to the size of the parent component (ex. flex or - container). - - There are two options for displaying the Wizard for more compact widths: - - - Compact variant: The default (or preferred ) responsive execution reduces the wizard to - just the numbered steps for more compact screens. - - - Scrollable full-text Wizard: makes use of the parent container to create a horizontally - scrollable box that allows users to see the full numbers and text. - - - - ), - }, { title: "Best practices", content: ( diff --git a/apps/website/screens/foundations/spacing/SpacingPage.tsx b/apps/website/screens/foundations/spacing/SpacingPage.tsx index 564dc43fff..0f9a40e291 100644 --- a/apps/website/screens/foundations/spacing/SpacingPage.tsx +++ b/apps/website/screens/foundations/spacing/SpacingPage.tsx @@ -263,21 +263,19 @@ const sections = [ content: ( <> - Both fixed and fluid spacing behaviors play an important role in determining the placement of components when + Both fixed and fluid spacing behaviors play a key role in determining the placement of components when adjusting screen sizes. - Fixed spacing can affect an application in ways such as when a minimum width is reached, - scrollbars can appear on the application or screen elements can stop adjusting based on available space. - This approach can be used for more structured layouts where it is important to maintain a fixed structure in - order to display information properly. + Fixed spacing can make parts of the application stop resizing or show scrollbars when the + screen gets too small. This is useful for layouts that need to stay structured so information is displayed + correctly. - Fluid spacing is often more suited to smaller screens where elements have more flexibility - to move around the screen. This can be seen in examples such as reducing the number of columns in a form - from two columns into just one or the form of components that follow a line-breaking behavior allowing for a - more vertical flowing approach to component layouts. + Fluid spacing works better in smaller screens, letting elements move around as needed. For + example, a form might switch from two columns to one, or components might wrap to the next line, creating a + more vertical, flowing layout.” From 6c4bd7bc26f87b5fb16cee50d629a97bf1fe6b54 Mon Sep 17 00:00:00 2001 From: Jialecl Date: Mon, 25 Aug 2025 09:23:41 +0200 Subject: [PATCH 4/4] added changes based on feedback --- .../badge/overview/BadgeOverviewPage.tsx | 2 +- .../data-grid/overview/DataGridOverviewPage.tsx | 6 +++--- .../overview/DateInputOverviewPage.tsx | 2 +- .../footer/overview/FooterOverviewPage.tsx | 2 +- .../link/overview/LinkOverviewPage.tsx | 4 ++-- .../nav-tabs/overview/NavTabsOverviewPage.tsx | 2 -- .../overview/images/navtabs_responsive.png | Bin 2235 -> 0 bytes .../paginator/overview/PaginatorOverviewPage.tsx | 4 ++-- .../overview/ProgressBarOverviewPage.tsx | 2 +- .../overview/ResultsetTableOverviewPage.tsx | 3 +-- .../select/overview/SelectOverviewPage.tsx | 2 +- .../switch/overview/SwitchOverviewPage.tsx | 10 ++++++++-- .../screens/foundations/color/ColorPage.tsx | 2 +- .../foundations/elevation/ElevationPage.tsx | 2 +- .../foundations/typography/TypographyPage.tsx | 4 ++-- .../screens/principles/layout/LayoutPage.tsx | 4 ++-- 16 files changed, 27 insertions(+), 24 deletions(-) delete mode 100644 apps/website/screens/components/nav-tabs/overview/images/navtabs_responsive.png diff --git a/apps/website/screens/components/badge/overview/BadgeOverviewPage.tsx b/apps/website/screens/components/badge/overview/BadgeOverviewPage.tsx index f5b3a8bb3b..2d336c837f 100644 --- a/apps/website/screens/components/badge/overview/BadgeOverviewPage.tsx +++ b/apps/website/screens/components/badge/overview/BadgeOverviewPage.tsx @@ -75,7 +75,7 @@ const sections = [ content: ( <> - Designed mainly for data visualization interfaces, the contextual variant of the Badge component’s main + Designed mainly for data visualization interfaces, the contextual variant of the Badge component's main advantage lies in its ability to categorize content and represent specific information. It is intentionally non-interactive and may contain icons strategically chosen to enhance the conveyed information. diff --git a/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx b/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx index c926f72951..e93e888db2 100644 --- a/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx +++ b/apps/website/screens/components/data-grid/overview/DataGridOverviewPage.tsx @@ -204,11 +204,11 @@ const sections = [ title: "Responsive behavior", content: ( <> - The datagrid’s size adjusts to the available space. + The datagrid's size adjusts to the available space. - When placing a datagrid inside a parent component, adjusting the parent component’s width also - correspondingly adjusts datagrid width up to a certain extent. A datagrid’s minimum width based on the + When placing a datagrid inside a parent component, adjusting the parent component's width also + correspondingly adjusts datagrid width up to a certain extent. A datagrid's minimum width based on the content of the column headers and the number of columns it has. diff --git a/apps/website/screens/components/date-input/overview/DateInputOverviewPage.tsx b/apps/website/screens/components/date-input/overview/DateInputOverviewPage.tsx index d3a79924fd..8e0ddf98b7 100644 --- a/apps/website/screens/components/date-input/overview/DateInputOverviewPage.tsx +++ b/apps/website/screens/components/date-input/overview/DateInputOverviewPage.tsx @@ -216,7 +216,7 @@ const sections = [ content: ( - Match the date format to the user’s regional settings (DD/MM/YYYY or MM/DD/YYYY), and consider using + Match the date format to the user's regional settings (DD/MM/YYYY or MM/DD/YYYY), and consider using placeholder text to guide formatting. diff --git a/apps/website/screens/components/footer/overview/FooterOverviewPage.tsx b/apps/website/screens/components/footer/overview/FooterOverviewPage.tsx index 1087c7d0a4..1a921ec414 100644 --- a/apps/website/screens/components/footer/overview/FooterOverviewPage.tsx +++ b/apps/website/screens/components/footer/overview/FooterOverviewPage.tsx @@ -33,7 +33,7 @@ const sections = [ reinforce company recognition across all pages. - Social icons: A set of clickable icons linking to the company’s social media platforms + Social icons: A set of clickable icons linking to the company's social media platforms (e.g., LinkedIn, Facebook). Placed on the right side for easy visibility and access. diff --git a/apps/website/screens/components/link/overview/LinkOverviewPage.tsx b/apps/website/screens/components/link/overview/LinkOverviewPage.tsx index 8e062fd01a..9b045bbd54 100644 --- a/apps/website/screens/components/link/overview/LinkOverviewPage.tsx +++ b/apps/website/screens/components/link/overview/LinkOverviewPage.tsx @@ -26,10 +26,10 @@ const sections = [ Icon: an optional visual element that can be used to represent more graphically the purpose - of the link. It can be placed before or after the link it’s representing. + of the link. It can be placed before or after the link it's representing. - Label: displays the textual content of the link, conveying where exactly it’s going to + Label: displays the textual content of the link, conveying where exactly it's going to navigate the component. diff --git a/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx b/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx index 2a869087e8..5c79185894 100644 --- a/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx +++ b/apps/website/screens/components/nav-tabs/overview/NavTabsOverviewPage.tsx @@ -4,13 +4,11 @@ import QuickNavContainer from "@/common/QuickNavContainer"; import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; import Image from "@/common/Image"; import navTabsAnatomy from "./images/navTabs_anatomy.png"; -import responsiveNavTabs from "./images/navtabs_responsive.png"; import Link from "next/link"; import Example from "@/common/example/Example"; import icons_top from "./examples/icons_top"; import icons_left from "./examples/icons_left"; import badges from "./examples/badges"; -import Figure from "@/common/Figure"; const sections = [ { diff --git a/apps/website/screens/components/nav-tabs/overview/images/navtabs_responsive.png b/apps/website/screens/components/nav-tabs/overview/images/navtabs_responsive.png deleted file mode 100644 index 8f60e5a1fe81ecee61bfbf8030df3c6de9d7bb15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2235 zcmdT_`B#%y8va7UCb2C>b_6XII%?S>ghdD_0y+{L1w@1pOl>#@32h39gd{}4Mxn8` ziV%{3bV?B}bkmf2XH25y#F(I?3OV1;J?Mmxk45bV z8V8+UfEO4cJSH3fnpsxHG*bYuIC>}|JnlSXVe0Rsc%p-NnUGs%Vv1>td&q%VgG^6YyJ|vb&JEZu%Pfha|xF+t?E5ZD@2GTw)2?@7TVpDCD>n$ZnOfjLd-x+UXn)vF2VI|r15f}s z$^gJ_s$dW}0EAhZfYsBtz`VgnJO2j*O3Y-N1X!VKBvB z>irovt}1wMg+4i{f9{r)I1De21i_;^6}e4IA;+J-IN9|*3ZM)L3E-qnJKT0?FVQ2 z>RGd!*{nR3W*eWfp-#oy&)!C>TW{~vg>!**+D!iS4dE5v{pM%#@&Y|mI)-1tB;Q|( zi=6vmEXF8OI}g1l)n&$DvTyZyTw=rl1_H4DQNk%XNVEd%u@_!S2y-@F`SYm9SRs$rS9Vztye8kt3v5`ID#thX>#T_deI(bPG~-h`YP{G#EK;r=nf6u3W_gTzH*+1cUMSu*qGR7&&qg zG7$zq?|yguidHk!&qR1s96VLLc-7A9w02G^h1t_L_IQZ!c)X9F-$><=Cz^kXC~NoH z{q3tZ!@OmV4&wI2$GwVnvSxaa6D-XpI&{A!U`>|N-Uf$iqoW?y<b5Jdx;P z=3?&`phSs_Q7F{drPEGtE(qRp)SHzxCAMEfqit(oxheIZ&`Uj_=QA?)OjIcr`t Our paginator component offers different configurations to accommodate various use cases. Take the time to - explore these options and identify the best fit for your specific needs—whether it’s simple navigation, + explore these options and identify the best fit for your specific needs—whether it's simple navigation, dynamic content loading, or more advanced pagination controls. Choosing the right configuration ensures a seamless experience for users. @@ -100,7 +100,7 @@ const sections = [ title: "Responsive behavior", content: ( - Selecting the right type of paginator is important – particularly for applications that may be displayed in + Selecting the right type of paginator is important - particularly for applications that may be displayed in smaller screen sizes. Configurations with a simple navigation can go a long way towards reducing cognitive load and visual clutter (ex. simply show what page the user is on or limit interactive elements to the page selection dropdown for navigation). diff --git a/apps/website/screens/components/progress-bar/overview/ProgressBarOverviewPage.tsx b/apps/website/screens/components/progress-bar/overview/ProgressBarOverviewPage.tsx index b5943e7f9a..93a3fdd9ed 100644 --- a/apps/website/screens/components/progress-bar/overview/ProgressBarOverviewPage.tsx +++ b/apps/website/screens/components/progress-bar/overview/ProgressBarOverviewPage.tsx @@ -115,7 +115,7 @@ const sections = [ Use the right variant: use determinate when the completion percentage is known (e.g., file - uploads, task completion). Use indeterminate when the system can’t predict the time or progress (e.g., + uploads, task completion). Use indeterminate when the system can't predict the time or progress (e.g., loading content, waiting for server responses). diff --git a/apps/website/screens/components/resultset-table/overview/ResultsetTableOverviewPage.tsx b/apps/website/screens/components/resultset-table/overview/ResultsetTableOverviewPage.tsx index 38a96c20ca..0ab3ddc1e2 100644 --- a/apps/website/screens/components/resultset-table/overview/ResultsetTableOverviewPage.tsx +++ b/apps/website/screens/components/resultset-table/overview/ResultsetTableOverviewPage.tsx @@ -7,7 +7,6 @@ import anatomy from "./images/resultset_table_anatomy.png"; import resultsetTableOverflow from "./images/resultset_table_overflow.png"; import resultsetTableResponsive from "./images/resultset_table_responsive.png"; import Image from "@/common/Image"; -import Figure from "@/common/Figure"; const sections = [ { @@ -142,7 +141,7 @@ const sections = [ - When placing a table inside a container component that adjusts based on screen width, the table’s width also + When placing a table inside a container component that adjusts based on screen width, the table's width also correspondingly adjusts up to a certain minimum value based on its content and the number of columns. Resultset table overflow diff --git a/apps/website/screens/components/select/overview/SelectOverviewPage.tsx b/apps/website/screens/components/select/overview/SelectOverviewPage.tsx index bfd1594738..7177b5860f 100644 --- a/apps/website/screens/components/select/overview/SelectOverviewPage.tsx +++ b/apps/website/screens/components/select/overview/SelectOverviewPage.tsx @@ -276,7 +276,7 @@ const sections = [ Label optional fields clearly: when the select field is optional, ensure a placeholder option - is available to indicate that the field can be left empty. If it’s required, provide an error message when + is available to indicate that the field can be left empty. If it's required, provide an error message when left unselected. diff --git a/apps/website/screens/components/switch/overview/SwitchOverviewPage.tsx b/apps/website/screens/components/switch/overview/SwitchOverviewPage.tsx index ec49dbb0e9..fa2144c051 100644 --- a/apps/website/screens/components/switch/overview/SwitchOverviewPage.tsx +++ b/apps/website/screens/components/switch/overview/SwitchOverviewPage.tsx @@ -108,13 +108,19 @@ const sections = [ Label before - Improves clarity by describing the setting being controlled. This is the default and recommended position. + + Improves clarity by describing the setting being controlled. This is the default and recommended + position. + Label after - Useful in minimalist interfaces or when the switch’s current state needs to be highlighted. Recommended only for specific use cases. + + Useful in minimalist interfaces or when the switch's current state needs to be highlighted. Recommended + only for specific use cases. + diff --git a/apps/website/screens/foundations/color/ColorPage.tsx b/apps/website/screens/foundations/color/ColorPage.tsx index 46bfe7b382..c5a5dc9334 100644 --- a/apps/website/screens/foundations/color/ColorPage.tsx +++ b/apps/website/screens/foundations/color/ColorPage.tsx @@ -189,7 +189,7 @@ const sections = [ reassures users and reinforces positive outcomes. - Orange - Warning: Used for cautionary messages or potential risks that don’t block + Orange - Warning: Used for cautionary messages or potential risks that don't block progress but may require attention. diff --git a/apps/website/screens/foundations/elevation/ElevationPage.tsx b/apps/website/screens/foundations/elevation/ElevationPage.tsx index 0cf6c76d86..98e86baf44 100644 --- a/apps/website/screens/foundations/elevation/ElevationPage.tsx +++ b/apps/website/screens/foundations/elevation/ElevationPage.tsx @@ -143,7 +143,7 @@ const sections = [ hierarchy and component behavior. - Don’t overlay too much: avoid stacking multiple shadows or using high-intensity shadows on + Don't overlay too much: avoid stacking multiple shadows or using high-intensity shadows on too many components, as this leads to visual clutter. diff --git a/apps/website/screens/foundations/typography/TypographyPage.tsx b/apps/website/screens/foundations/typography/TypographyPage.tsx index 5a7143ff06..a16791b614 100644 --- a/apps/website/screens/foundations/typography/TypographyPage.tsx +++ b/apps/website/screens/foundations/typography/TypographyPage.tsx @@ -20,11 +20,11 @@ const sections = [ content: ( <> - Typography plays a critical role in structuring the user’s experience through the visual impact it has on the + Typography plays a critical role in structuring the user's experience through the visual impact it has on the interface content. - It defines what is the first noticeable piece of information or data based on the font’s + It defines what is the first noticeable piece of information or data based on the font's shape, size, color, or type, and it highlights some pieces of text over others. diff --git a/apps/website/screens/principles/layout/LayoutPage.tsx b/apps/website/screens/principles/layout/LayoutPage.tsx index 6fdb84cc2f..970f1f2789 100644 --- a/apps/website/screens/principles/layout/LayoutPage.tsx +++ b/apps/website/screens/principles/layout/LayoutPage.tsx @@ -255,7 +255,7 @@ const sections = [ For applications that are focused on supporting tablet or mobile designs, make sure to design for and test - the application across all expected screens sizes and orientations. Please refer to{" "} + the application across all expected screen sizes and orientations. Please refer to{" "} Breakpoints {" "} @@ -264,7 +264,7 @@ const sections = [ There are also cases where mobile is the default resolution for the application. In this case consider how - the application’s contents grows based on changing screen sizes (such as all the different sizes of mobile + the application's contents grows based on changing screen sizes (such as all the different sizes of mobile and tablet devices).