Bootstrap 5.3.8 • Chapter 44 • Responsive LTR + RTL
Scrollspy
Every topic includes its own Bootstrap coding example, explanation, ten teaching examples, expected result, practice, and responsive Persian/Arabic checks.
44.1 Scrollspy Setup
Scrollspy Setup is part of Bootstrap 5.3.8 covered in Chapter 44. 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 Scrollspy Setup in Chapter 44, 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 Scrollspy Setup 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
Scrollspy Setup is part of Bootstrap 5.3.8 covered in Chapter 44. 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 lesson page that demonstrates Scrollspy Setup. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 44, topic 1, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the admin page example for Scrollspy Setup. Compare the mobile layout with the tablet or desktop layout. Chapter 44, topic 1, example 2.
Example 3: Long translation
Replace a short English label in the booking page with a much longer translated label while using Scrollspy Setup. Confirm wrapping does not widen the viewport. Chapter 44, topic 1, example 3.
Example 4: Persian test
Translate the course page to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 44, topic 1, example 4.
Example 5: Arabic test
Translate the dashboard to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 44, topic 1, example 5.
Example 6: Accessibility review
Use Scrollspy Setup in the profile screen and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 44, topic 1, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the checkout. Adjust the Bootstrap structure without hiding meaningful content. Chapter 44, topic 1, example 7.
Example 8: Utility comparison
Rebuild one part of the contact form using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 44, topic 1, example 8.
Example 9: JavaScript-state test
If Scrollspy Setup uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the article. If not, verify the example works without JavaScript. Chapter 44, topic 1, example 9.
Example 10: Production review
Review Scrollspy Setup in the settings panel for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 44, topic 1, example 10.
Bootstrap coding example
<nav id="spyNav1" class="nav"><a class="nav-link" href="#sectionA">A</a><a class="nav-link" href="#sectionB">B</a></nav><div data-bs-spy="scroll" data-bs-target="#spyNav1" data-bs-smooth-scroll="true" tabindex="0" style="height:10rem;overflow:auto"><section id="sectionA" style="min-height:12rem">A</section><section id="sectionB" style="min-height:12rem">B</section></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for Scrollspy Setup.
- 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 Scrollspy Setup 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 Scrollspy Setup from Chapter 44. 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.
44.2 Navigation Targets
Navigation Targets is part of Bootstrap 5.3.8 covered in Chapter 44. 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 Navigation Targets in Chapter 44, 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 Navigation Targets 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
Navigation Targets is part of Bootstrap 5.3.8 covered in Chapter 44. 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 booking page that demonstrates Navigation Targets. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 44, topic 2, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the course page example for Navigation Targets. Compare the mobile layout with the tablet or desktop layout. Chapter 44, topic 2, example 2.
Example 3: Long translation
Replace a short English label in the dashboard with a much longer translated label while using Navigation Targets. Confirm wrapping does not widen the viewport. Chapter 44, topic 2, example 3.
Example 4: Persian test
Translate the profile screen to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 44, topic 2, example 4.
Example 5: Arabic test
Translate the checkout to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 44, topic 2, example 5.
Example 6: Accessibility review
Use Navigation Targets in the contact form and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 44, topic 2, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the article. Adjust the Bootstrap structure without hiding meaningful content. Chapter 44, topic 2, example 7.
Example 8: Utility comparison
Rebuild one part of the settings panel using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 44, topic 2, example 8.
Example 9: JavaScript-state test
If Navigation Targets uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the gallery. If not, verify the example works without JavaScript. Chapter 44, topic 2, example 9.
Example 10: Production review
Review Navigation Targets in the support page for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 44, topic 2, example 10.
Bootstrap coding example
<nav id="spyNav2" class="nav"><a class="nav-link" href="#sectionA">A</a><a class="nav-link" href="#sectionB">B</a></nav><div data-bs-spy="scroll" data-bs-target="#spyNav2" data-bs-smooth-scroll="true" tabindex="0" style="height:10rem;overflow:auto"><section id="sectionA" style="min-height:12rem">A</section><section id="sectionB" style="min-height:12rem">B</section></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for Navigation Targets.
- 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 Navigation Targets 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 Navigation Targets from Chapter 44. 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.
44.3 Nested Navigation
Nested Navigation is part of Bootstrap 5.3.8 covered in Chapter 44. 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 Nested Navigation in Chapter 44, 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 Nested Navigation 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
Nested Navigation is part of Bootstrap 5.3.8 covered in Chapter 44. 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 dashboard that demonstrates Nested Navigation. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 44, topic 3, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the profile screen example for Nested Navigation. Compare the mobile layout with the tablet or desktop layout. Chapter 44, topic 3, example 2.
Example 3: Long translation
Replace a short English label in the checkout with a much longer translated label while using Nested Navigation. Confirm wrapping does not widen the viewport. Chapter 44, topic 3, example 3.
Example 4: Persian test
Translate the contact form to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 44, topic 3, example 4.
Example 5: Arabic test
Translate the article to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 44, topic 3, example 5.
Example 6: Accessibility review
Use Nested Navigation in the settings panel and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 44, topic 3, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the gallery. Adjust the Bootstrap structure without hiding meaningful content. Chapter 44, topic 3, example 7.
Example 8: Utility comparison
Rebuild one part of the support page using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 44, topic 3, example 8.
Example 9: JavaScript-state test
If Nested Navigation uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the event page. If not, verify the example works without JavaScript. Chapter 44, topic 3, example 9.
Example 10: Production review
Review Nested Navigation in the analytics page for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 44, topic 3, example 10.
Bootstrap coding example
<nav id="spyNav3" class="nav"><a class="nav-link" href="#sectionA">A</a><a class="nav-link" href="#sectionB">B</a></nav><div data-bs-spy="scroll" data-bs-target="#spyNav3" data-bs-smooth-scroll="true" tabindex="0" style="height:10rem;overflow:auto"><section id="sectionA" style="min-height:12rem">A</section><section id="sectionB" style="min-height:12rem">B</section></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for Nested Navigation.
- 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 Nested Navigation 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 Nested Navigation from Chapter 44. 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.
44.4 Smooth Scrolling
Smooth Scrolling is part of Bootstrap 5.3.8 covered in Chapter 44. 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 Smooth Scrolling in Chapter 44, 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 Smooth Scrolling 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
Smooth Scrolling is part of Bootstrap 5.3.8 covered in Chapter 44. 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 checkout that demonstrates Smooth Scrolling. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 44, topic 4, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the contact form example for Smooth Scrolling. Compare the mobile layout with the tablet or desktop layout. Chapter 44, topic 4, example 2.
Example 3: Long translation
Replace a short English label in the article with a much longer translated label while using Smooth Scrolling. Confirm wrapping does not widen the viewport. Chapter 44, topic 4, example 3.
Example 4: Persian test
Translate the settings panel to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 44, topic 4, example 4.
Example 5: Arabic test
Translate the gallery to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 44, topic 4, example 5.
Example 6: Accessibility review
Use Smooth Scrolling in the support page and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 44, topic 4, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the event page. Adjust the Bootstrap structure without hiding meaningful content. Chapter 44, topic 4, example 7.
Example 8: Utility comparison
Rebuild one part of the analytics page using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 44, topic 4, example 8.
Example 9: JavaScript-state test
If Smooth Scrolling uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the account page. If not, verify the example works without JavaScript. Chapter 44, topic 4, example 9.
Example 10: Production review
Review Smooth Scrolling in the lesson page for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 44, topic 4, example 10.
Bootstrap coding example
<nav id="spyNav4" class="nav"><a class="nav-link" href="#sectionA">A</a><a class="nav-link" href="#sectionB">B</a></nav><div data-bs-spy="scroll" data-bs-target="#spyNav4" data-bs-smooth-scroll="true" tabindex="0" style="height:10rem;overflow:auto"><section id="sectionA" style="min-height:12rem">A</section><section id="sectionB" style="min-height:12rem">B</section></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for Smooth Scrolling.
- 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 Smooth Scrolling 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 Smooth Scrolling from Chapter 44. 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.
44.5 Scrollspy Events
Scrollspy Events is part of Bootstrap 5.3.8 covered in Chapter 44. 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 Scrollspy Events in Chapter 44, 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 Scrollspy Events 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
Scrollspy Events is part of Bootstrap 5.3.8 covered in Chapter 44. 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 article that demonstrates Scrollspy Events. Keep the Bootstrap classes visible in the markup and explain which class provides the behavior. Chapter 44, topic 5, example 1.
Example 2: Responsive variation
Add a breakpoint-specific class to the settings panel example for Scrollspy Events. Compare the mobile layout with the tablet or desktop layout. Chapter 44, topic 5, example 2.
Example 3: Long translation
Replace a short English label in the gallery with a much longer translated label while using Scrollspy Events. Confirm wrapping does not widen the viewport. Chapter 44, topic 5, example 3.
Example 4: Persian test
Translate the support page to Persian. Verify start/end spacing, text alignment, component direction, and that the Bootstrap RTL stylesheet is active. Chapter 44, topic 5, example 4.
Example 5: Arabic test
Translate the event page to Arabic. Check buttons, forms, dropdowns, navigation, and offcanvas placement for correct RTL behavior. Chapter 44, topic 5, example 5.
Example 6: Accessibility review
Use Scrollspy Events in the analytics page and verify semantic HTML, accessible names, keyboard interaction, focus visibility, and status messaging. Chapter 44, topic 5, example 6.
Example 7: Content stress
Add long text, nested controls, wide media, and narrow viewport width to the account page. Adjust the Bootstrap structure without hiding meaningful content. Chapter 44, topic 5, example 7.
Example 8: Utility comparison
Rebuild one part of the lesson page using Bootstrap utilities instead of custom CSS, then compare readability and maintainability. Chapter 44, topic 5, example 8.
Example 9: JavaScript-state test
If Scrollspy Events uses Bootstrap JavaScript, test open, close, focus, disposal, and repeated initialization in the admin page. If not, verify the example works without JavaScript. Chapter 44, topic 5, example 9.
Example 10: Production review
Review Scrollspy Events in the booking page for breakpoints, RTL, Google Translate, zoom, keyboard use, performance, and maintainable class choices. Chapter 44, topic 5, example 10.
Bootstrap coding example
<nav id="spyNav5" class="nav"><a class="nav-link" href="#sectionA">A</a><a class="nav-link" href="#sectionB">B</a></nav><div data-bs-spy="scroll" data-bs-target="#spyNav5" data-bs-smooth-scroll="true" tabindex="0" style="height:10rem;overflow:auto"><section id="sectionA" style="min-height:12rem">A</section><section id="sectionB" style="min-height:12rem">B</section></div>Step-by-step code explanation
- Identify the Bootstrap class, data attribute, or JavaScript API used for Scrollspy Events.
- 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 Scrollspy Events 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 Scrollspy Events from Chapter 44. 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 44 review — 10 questions and answers
1. What should you inspect when Scrollspy Setup does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in Scrollspy Setup. Then inspect computed styles to see which declaration wins.
2. How should Scrollspy Setup be tested before publishing?
Answer: Test Scrollspy Setup 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 Navigation Targets does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in Navigation Targets. Then inspect computed styles to see which declaration wins.
4. How should Navigation Targets be tested before publishing?
Answer: Test Navigation Targets 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 Nested Navigation does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in Nested Navigation. Then inspect computed styles to see which declaration wins.
6. How should Nested Navigation be tested before publishing?
Answer: Test Nested Navigation 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 Smooth Scrolling does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in Smooth Scrolling. Then inspect computed styles to see which declaration wins.
8. How should Smooth Scrolling be tested before publishing?
Answer: Test Smooth Scrolling 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 Scrollspy Events does not behave as expected?
Answer: Check the Bootstrap classes, breakpoint, DOM structure, loaded CSS version, and any JavaScript data attributes involved in Scrollspy Events. Then inspect computed styles to see which declaration wins.
10. How should Scrollspy Events be tested before publishing?
Answer: Test Scrollspy Events 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.