🎓 EASYTUTORGUIDE

Practical tutorials, tools, courses, digital skills, and business promotion.

★ Free Learning
Translate this lesson:
Persian and Arabic automatically enable Bootstrap RTL CSS. Long translated content remains responsive; code stays LTR.

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.

5 topics5 coding examples50 teaching examples10 Q&A
Estimated reading time · 0% read

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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

  1. Identify the Bootstrap class, data attribute, or JavaScript API used for progress.
  2. Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
  3. Resize the viewport and observe which responsive classes become active at each breakpoint.
  4. 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.
  5. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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

  1. Identify the Bootstrap class, data attribute, or JavaScript API used for Stacked Progress.
  2. Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
  3. Resize the viewport and observe which responsive classes become active at each breakpoint.
  4. 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.
  5. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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

  1. Identify the Bootstrap class, data attribute, or JavaScript API used for spinner-border.
  2. Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
  3. Resize the viewport and observe which responsive classes become active at each breakpoint.
  4. 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.
  5. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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

  1. Identify the Bootstrap class, data attribute, or JavaScript API used for spinner-grow.
  2. Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
  3. Resize the viewport and observe which responsive classes become active at each breakpoint.
  4. 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.
  5. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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

  1. Identify the Bootstrap class, data attribute, or JavaScript API used for Accessible Loading Status.
  2. Read the HTML nesting first. Bootstrap components often depend on a specific relationship between wrappers, controls, and content.
  3. Resize the viewport and observe which responsive classes become active at each breakpoint.
  4. 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.
  5. 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.