Bootstrap 5.3.8 • Chapter 33 • Responsive LTR + RTL
Progress and Spinners
Every topic includes its own Bootstrap coding example, explanation, ten teaching examples, expected result, practice, and responsive Persian/Arabic checks.
33.1 progress
progress is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax. The example uses Bootstrap classes or APIs directly so you can connect the class name to its visual or interactive result.
For progress in Chapter 33, inspect the DOM structure, Bootstrap class names, responsive breakpoint, and any data-bs attributes or JavaScript initialization. When Google Translate is active, also verify that longer labels wrap and the correct LTR or RTL Bootstrap stylesheet is enabled.
Test progress at phone, tablet, laptop, and wide-screen sizes. Then translate the example to Persian and Arabic, increase browser zoom, and inspect whether rows, columns, forms, menus, overlays, and labels remain inside the viewport.
Concept in plain language
progress is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax.
10 teaching examples
Example 1: Minimal component
Build the smallest profile screen that demonstrates progress. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 33, topic 1, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the checkout example for progress. Compare the mobile layout with the tablet or desktop layout. Chapter 33, topic 1, example 2.
Example 3: Long translation
Replace a short English label in the contact form with a much longer translated label while using progress. Confirm wrapping does not widen the viewport. Chapter 33, topic 1, example 3.
Example 4: Persian test
Translate the article to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 33, topic 1, example 4.
Example 5: Arabic test
Translate the settings panel to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 33, topic 1, example 5.
Example 6: Accessibility review
Use progress in the gallery and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 33, topic 1, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the support page. Adjust the Bootstrap structure without hiding meaningful content. Chapter 33, topic 1, example 7.
Example 8: Utility comparison
Rebuild one part of the event page using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 33, topic 1, example 8.
Example 9: JavaScript-state test
If progress uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the analytics page. If not, verify the example works without JavaScript. Chapter 33, topic 1, example 9.
Example 10: Production review
Review progress in the account page for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 33, topic 1, example 10.
Bootstrap coding example
<div class="progress" role="progressbar" aria-label="Progress" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar" style="width:40%">40%</div></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for progress.
- Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
- Resize the viewport and observe which responsive classes become active at each breakpoint.
- Translate the visible content. Long labels must wrap, .row children must be able to shrink, and tables should use a local responsive wrapper instead of widening the page.
- Switch to Persian or Arabic and confirm that the page has dir=rtl, Bootstrap's RTL stylesheet is active, start/end utilities behave correctly, and code examples remain LTR.
Expected result: The browser demonstrates progress with responsive behavior. Persian and Arabic use RTL layout without creating page-wide horizontal scrolling; genuinely wide code or tables scroll locally.
Practice exercise
Build a new Bootstrap 5.3.8 example for progress from Chapter 33. Test it at 320px, 768px, and desktop width, translate its visible text to Persian and Arabic, and explain which Bootstrap classes or JavaScript API create the final behavior.
33.2 Stacked Progress
Stacked Progress is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax. The example uses Bootstrap classes or APIs directly so you can connect the class name to its visual or interactive result.
For Stacked Progress in Chapter 33, inspect the DOM structure, Bootstrap class names, responsive breakpoint, and any data-bs attributes or JavaScript initialization. When Google Translate is active, also verify that longer labels wrap and the correct LTR or RTL Bootstrap stylesheet is enabled.
Test Stacked Progress at phone, tablet, laptop, and wide-screen sizes. Then translate the example to Persian and Arabic, increase browser zoom, and inspect whether rows, columns, forms, menus, overlays, and labels remain inside the viewport.
Concept in plain language
Stacked Progress is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax.
10 teaching examples
Example 1: Minimal component
Build the smallest contact form that demonstrates Stacked Progress. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 33, topic 2, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the article example for Stacked Progress. Compare the mobile layout with the tablet or desktop layout. Chapter 33, topic 2, example 2.
Example 3: Long translation
Replace a short English label in the settings panel with a much longer translated label while using Stacked Progress. Confirm wrapping does not widen the viewport. Chapter 33, topic 2, example 3.
Example 4: Persian test
Translate the gallery to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 33, topic 2, example 4.
Example 5: Arabic test
Translate the support page to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 33, topic 2, example 5.
Example 6: Accessibility review
Use Stacked Progress in the event page and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 33, topic 2, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the analytics page. Adjust the Bootstrap structure without hiding meaningful content. Chapter 33, topic 2, example 7.
Example 8: Utility comparison
Rebuild one part of the account page using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 33, topic 2, example 8.
Example 9: JavaScript-state test
If Stacked Progress uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the lesson page. If not, verify the example works without JavaScript. Chapter 33, topic 2, example 9.
Example 10: Production review
Review Stacked Progress in the admin page for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 33, topic 2, example 10.
Bootstrap coding example
<div class="progress-stacked"><div class="progress" style="width:40%"><div class="progress-bar"></div></div><div class="progress" style="width:20%"><div class="progress-bar bg-success"></div></div></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for Stacked Progress.
- Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
- Resize the viewport and observe which responsive classes become active at each breakpoint.
- Translate the visible content. Long labels must wrap, .row children must be able to shrink, and tables should use a local responsive wrapper instead of widening the page.
- Switch to Persian or Arabic and confirm that the page has dir=rtl, Bootstrap's RTL stylesheet is active, start/end utilities behave correctly, and code examples remain LTR.
Expected result: The browser demonstrates Stacked Progress with responsive behavior. Persian and Arabic use RTL layout without creating page-wide horizontal scrolling; genuinely wide code or tables scroll locally.
Practice exercise
Build a new Bootstrap 5.3.8 example for Stacked Progress from Chapter 33. Test it at 320px, 768px, and desktop width, translate its visible text to Persian and Arabic, and explain which Bootstrap classes or JavaScript API create the final behavior.
33.3 spinner-border
spinner-border is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax. The example uses Bootstrap classes or APIs directly so you can connect the class name to its visual or interactive result.
For spinner-border in Chapter 33, inspect the DOM structure, Bootstrap class names, responsive breakpoint, and any data-bs attributes or JavaScript initialization. When Google Translate is active, also verify that longer labels wrap and the correct LTR or RTL Bootstrap stylesheet is enabled.
Test spinner-border at phone, tablet, laptop, and wide-screen sizes. Then translate the example to Persian and Arabic, increase browser zoom, and inspect whether rows, columns, forms, menus, overlays, and labels remain inside the viewport.
Concept in plain language
spinner-border is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax.
10 teaching examples
Example 1: Minimal component
Build the smallest settings panel that demonstrates spinner-border. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 33, topic 3, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the gallery example for spinner-border. Compare the mobile layout with the tablet or desktop layout. Chapter 33, topic 3, example 2.
Example 3: Long translation
Replace a short English label in the support page with a much longer translated label while using spinner-border. Confirm wrapping does not widen the viewport. Chapter 33, topic 3, example 3.
Example 4: Persian test
Translate the event page to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 33, topic 3, example 4.
Example 5: Arabic test
Translate the analytics page to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 33, topic 3, example 5.
Example 6: Accessibility review
Use spinner-border in the account page and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 33, topic 3, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the lesson page. Adjust the Bootstrap structure without hiding meaningful content. Chapter 33, topic 3, example 7.
Example 8: Utility comparison
Rebuild one part of the admin page using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 33, topic 3, example 8.
Example 9: JavaScript-state test
If spinner-border uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the booking page. If not, verify the example works without JavaScript. Chapter 33, topic 3, example 9.
Example 10: Production review
Review spinner-border in the course page for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 33, topic 3, example 10.
Bootstrap coding example
<div class="spinner-border" role="status"><span class="visually-hidden">Loading</span></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for spinner-border.
- Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
- Resize the viewport and observe which responsive classes become active at each breakpoint.
- Translate the visible content. Long labels must wrap, .row children must be able to shrink, and tables should use a local responsive wrapper instead of widening the page.
- Switch to Persian or Arabic and confirm that the page has dir=rtl, Bootstrap's RTL stylesheet is active, start/end utilities behave correctly, and code examples remain LTR.
Expected result: The browser demonstrates spinner-border with responsive behavior. Persian and Arabic use RTL layout without creating page-wide horizontal scrolling; genuinely wide code or tables scroll locally.
Practice exercise
Build a new Bootstrap 5.3.8 example for spinner-border from Chapter 33. Test it at 320px, 768px, and desktop width, translate its visible text to Persian and Arabic, and explain which Bootstrap classes or JavaScript API create the final behavior.
33.4 spinner-grow
spinner-grow is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax. The example uses Bootstrap classes or APIs directly so you can connect the class name to its visual or interactive result.
For spinner-grow in Chapter 33, inspect the DOM structure, Bootstrap class names, responsive breakpoint, and any data-bs attributes or JavaScript initialization. When Google Translate is active, also verify that longer labels wrap and the correct LTR or RTL Bootstrap stylesheet is enabled.
Test spinner-grow at phone, tablet, laptop, and wide-screen sizes. Then translate the example to Persian and Arabic, increase browser zoom, and inspect whether rows, columns, forms, menus, overlays, and labels remain inside the viewport.
Concept in plain language
spinner-grow is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax.
10 teaching examples
Example 1: Minimal component
Build the smallest support page that demonstrates spinner-grow. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 33, topic 4, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the event page example for spinner-grow. Compare the mobile layout with the tablet or desktop layout. Chapter 33, topic 4, example 2.
Example 3: Long translation
Replace a short English label in the analytics page with a much longer translated label while using spinner-grow. Confirm wrapping does not widen the viewport. Chapter 33, topic 4, example 3.
Example 4: Persian test
Translate the account page to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 33, topic 4, example 4.
Example 5: Arabic test
Translate the lesson page to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 33, topic 4, example 5.
Example 6: Accessibility review
Use spinner-grow in the admin page and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 33, topic 4, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the booking page. Adjust the Bootstrap structure without hiding meaningful content. Chapter 33, topic 4, example 7.
Example 8: Utility comparison
Rebuild one part of the course page using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 33, topic 4, example 8.
Example 9: JavaScript-state test
If spinner-grow uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the dashboard. If not, verify the example works without JavaScript. Chapter 33, topic 4, example 9.
Example 10: Production review
Review spinner-grow in the profile screen for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 33, topic 4, example 10.
Bootstrap coding example
<div class="spinner-grow text-primary" role="status"><span class="visually-hidden">Loading</span></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for spinner-grow.
- Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
- Resize the viewport and observe which responsive classes become active at each breakpoint.
- Translate the visible content. Long labels must wrap, .row children must be able to shrink, and tables should use a local responsive wrapper instead of widening the page.
- Switch to Persian or Arabic and confirm that the page has dir=rtl, Bootstrap's RTL stylesheet is active, start/end utilities behave correctly, and code examples remain LTR.
Expected result: The browser demonstrates spinner-grow with responsive behavior. Persian and Arabic use RTL layout without creating page-wide horizontal scrolling; genuinely wide code or tables scroll locally.
Practice exercise
Build a new Bootstrap 5.3.8 example for spinner-grow from Chapter 33. Test it at 320px, 768px, and desktop width, translate its visible text to Persian and Arabic, and explain which Bootstrap classes or JavaScript API create the final behavior.
33.5 Accessible Loading Status
Accessible Loading Status is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax. The example uses Bootstrap classes or APIs directly so you can connect the class name to its visual or interactive result.
For Accessible Loading Status in Chapter 33, inspect the DOM structure, Bootstrap class names, responsive breakpoint, and any data-bs attributes or JavaScript initialization. When Google Translate is active, also verify that longer labels wrap and the correct LTR or RTL Bootstrap stylesheet is enabled.
Test Accessible Loading Status at phone, tablet, laptop, and wide-screen sizes. Then translate the example to Persian and Arabic, increase browser zoom, and inspect whether rows, columns, forms, menus, overlays, and labels remain inside the viewport.
Concept in plain language
Accessible Loading Status is part of Bootstrap 5.3.8 covered in Chapter 33. Read the Bootstrap class names as a layer over CSS layout, spacing, components, utilities, and JavaScript behavior rather than as magic syntax.
10 teaching examples
Example 1: Minimal component
Build the smallest analytics page that demonstrates Accessible Loading Status. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 33, topic 5, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the account page example for Accessible Loading Status. Compare the mobile layout with the tablet or desktop layout. Chapter 33, topic 5, example 2.
Example 3: Long translation
Replace a short English label in the lesson page with a much longer translated label while using Accessible Loading Status. Confirm wrapping does not widen the viewport. Chapter 33, topic 5, example 3.
Example 4: Persian test
Translate the admin page to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 33, topic 5, example 4.
Example 5: Arabic test
Translate the booking page to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 33, topic 5, example 5.
Example 6: Accessibility review
Use Accessible Loading Status in the course page and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 33, topic 5, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the dashboard. Adjust the Bootstrap structure without hiding meaningful content. Chapter 33, topic 5, example 7.
Example 8: Utility comparison
Rebuild one part of the profile screen using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 33, topic 5, example 8.
Example 9: JavaScript-state test
If Accessible Loading Status uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the checkout. If not, verify the example works without JavaScript. Chapter 33, topic 5, example 9.
Example 10: Production review
Review Accessible Loading Status in the contact form for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 33, topic 5, example 10.
Bootstrap coding example
<div class="d-flex align-items-center gap-2" role="status"><div class="spinner-border spinner-border-sm"></div><span>Loading data</span></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for Accessible Loading Status.
- Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
- Resize the viewport and observe which responsive classes become active at each breakpoint.
- Translate the visible content. Long labels must wrap, .row children must be able to shrink, and tables should use a local responsive wrapper instead of widening the page.
- Switch to Persian or Arabic and confirm that the page has dir=rtl, Bootstrap's RTL stylesheet is active, start/end utilities behave correctly, and code examples remain LTR.
Expected result: The browser demonstrates Accessible Loading Status with responsive behavior. Persian and Arabic use RTL layout without creating page-wide horizontal scrolling; genuinely wide code or tables scroll locally.
Practice exercise
Build a new Bootstrap 5.3.8 example for Accessible Loading Status from Chapter 33. Test it at 320px, 768px, and desktop width, translate its visible text to Persian and Arabic, and explain which Bootstrap classes or JavaScript API create the final behavior.
Chapter 33 review — 10 questions and answers
1. What should you inspect when progress does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in progress. Then inspect computed styles to see which declaration wins.
2. How should progress be tested before publishing?
Answer: Test progress on narrow and wide screens, with long translated text, in Persian and Arabic RTL mode, at increased zoom, and with keyboard navigation where the component is interactive.
3. What should you inspect when Stacked Progress does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in Stacked Progress. Then inspect computed styles to see which declaration wins.
4. How should Stacked Progress be tested before publishing?
Answer: Test Stacked Progress on narrow and wide screens, with long translated text, in Persian and Arabic RTL mode, at increased zoom, and with keyboard navigation where the component is interactive.
5. What should you inspect when spinner-border does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in spinner-border. Then inspect computed styles to see which declaration wins.
6. How should spinner-border be tested before publishing?
Answer: Test spinner-border on narrow and wide screens, with long translated text, in Persian and Arabic RTL mode, at increased zoom, and with keyboard navigation where the component is interactive.
7. What should you inspect when spinner-grow does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in spinner-grow. Then inspect computed styles to see which declaration wins.
8. How should spinner-grow be tested before publishing?
Answer: Test spinner-grow on narrow and wide screens, with long translated text, in Persian and Arabic RTL mode, at increased zoom, and with keyboard navigation where the component is interactive.
9. What should you inspect when Accessible Loading Status does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in Accessible Loading Status. Then inspect computed styles to see which declaration wins.
10. How should Accessible Loading Status be tested before publishing?
Answer: Test Accessible Loading Status on narrow and wide screens, with long translated text, in Persian and Arabic RTL mode, at increased zoom, and with keyboard navigation where the component is interactive.