A professional presentation extension for the Adapt Learning Framework that transforms vertically stacked article blocks into an elegant horizontal slider with navigation controls and touch support.
- Features
- Installation
- Configuration
- Touch & Swipe Support
- Accessibility Compliance
- Internationalization
- Responsive Design
- Browser Support
- Customization
- Performance
- Limitations
- Developer Documentation
- Troubleshooting
- Version History
- Contributing
- License
- Support
- Horizontal Slider: Transforms vertically stacked blocks into horizontal slides
- Multiple Navigation Modes: Arrow buttons or tab-based navigation
- Touch/Swipe Support: Native gesture support for mobile and tablet devices
- Responsive Design: Adaptive behavior across all screen sizes
- RTL Support: Full Right-to-Left language support
- Accessibility First: WCAG 2.1 AA compliant with full keyboard navigation
- Desktop: Full feature set with mouse and keyboard controls
- Tablet: Touch-optimized with swipe gestures
- Mobile: Optimized for small screens with touch navigation
- Cross-Platform: Works on iOS, Android, Windows, and macOS
- Configurable Animations: Control slide and height transition speeds
- Screen Size Targeting: Enable/disable on specific breakpoints
- Starting Position: Set initial block display
- Uniform Heights: Optional consistent slide heights
- Minimum Height: Set container minimum height
- Swipe Sensitivity: Adjustable touch gesture threshold
- WCAG 2.1 AA Compliant: Meets international accessibility standards
- Screen Reader Support: Full ARIA labels and roles
- Keyboard Navigation: Complete keyboard accessibility
- Focus Management: Proper focus handling throughout
- Accessibility Mode: Can disable for simplified screen reader navigation
- Download: Get the latest version from Releases
- Upload: Navigate to Plugin Management in your AAT instance
- Install: Upload the plugin ZIP file
- Enable: Activate the plugin for your courses
Using the Adapt CLI:
adapt install adapt-articleBlockSliderOr manually:
cd src/extensions
git clone https://github.com/fosterc1/adapt-articleBlockSlider.git
# Remove the .git folder
rm -rf adapt-articleBlockSlider/.git
β οΈ Important: The Article Block Slider is disabled by default. You must explicitly enable it for each article where you want to use it by setting_isEnabled: truein the article's configuration.
Configure the Article Block Slider at the article level. In the Adapt Authoring Tool, you'll find an expandable "Article Block Slider" section when editing any article.
| Setting | Type | Default | Description |
|---|---|---|---|
_isEnabled |
Boolean | false |
Enable/disable the slider for this article. Must be set to true to activate the slider. |
_isDisabledWhenAccessibilityActive |
Boolean | false |
Disable slider when accessibility mode is active |
| Setting | Type | Default | Description |
|---|---|---|---|
_slideAnimationDuration |
Number | 600 |
Slide transition duration in milliseconds |
_heightAnimationDuration |
Number | 300 |
Height animation duration in milliseconds |
| Setting | Type | Default | Description |
|---|---|---|---|
_isEnabledOnScreenSizes |
String | "large medium" |
Screen sizes where slider is active |
_startIndex |
Number | 0 |
Initial block to display (zero-indexed) |
_hasUniformHeight |
Boolean | true |
Use consistent height for all blocks |
_minHeight |
Number | null |
Minimum container height in pixels |
| Setting | Type | Default | Description |
|---|---|---|---|
_hasArrows |
Boolean | true |
Enable arrow button navigation |
_hasTabs |
Boolean | false |
Enable tab navigation (mutually exclusive with arrows) |
| Setting | Type | Default | Description |
|---|---|---|---|
_enableTouchSwipe |
Boolean | true |
Enable touch/swipe gestures |
_swipeSensitivity |
Number | 50 |
Minimum swipe distance in pixels |
{
"_articleBlockSlider": {
"_isEnabled": true,
"_isDisabledWhenAccessibilityActive": false,
"_slideAnimationDuration": 600,
"_heightAnimationDuration": 300,
"_isEnabledOnScreenSizes": "large medium",
"_hasTabs": false,
"_hasArrows": true,
"_startIndex": 0,
"_hasUniformHeight": true,
"_minHeight": null,
"_enableTouchSwipe": true,
"_swipeSensitivity": 50
}
}See example.json for more configuration examples.
The Article Block Slider provides comprehensive touch and swipe support for mobile and tablet devices:
- Intuitive Gestures: Swipe left/right to navigate between blocks
- Smart Detection: Automatically distinguishes horizontal swipes (navigation) from vertical swipes (scrolling)
- RTL Support: Swipe directions automatically reverse for right-to-left languages
- Configurable: Adjust sensitivity to match your content and user preferences
- Screen Size Aware: Respects
_isEnabledOnScreenSizessetting - Hybrid Navigation: Works alongside arrow/tab navigation
| Gesture | Action | RTL Behavior |
|---|---|---|
| Swipe Left | Next block | Previous block in RTL |
| Swipe Right | Previous block | Next block in RTL |
| Swipe Up/Down | Page scroll | Same in RTL |
| Tap/Click | Button navigation | Same in RTL |
{
"_enableTouchSwipe": true, // Enable touch support
"_swipeSensitivity": 50 // Minimum distance in pixels
}Recommended Settings:
- High Sensitivity (25-40px): Fast, responsive swiping
- Medium Sensitivity (50-75px): Balanced, default setting
- Low Sensitivity (80-100px): Deliberate, prevent accidental swipes
The Article Block Slider is designed with accessibility as a priority and meets WCAG 2.1 Level AA standards.
- 1.1.1 Non-text Content (A): All images and icons have text alternatives via ARIA labels
- 1.3.1 Info and Relationships (A): Semantic HTML structure with proper ARIA roles
- 1.3.2 Meaningful Sequence (A): Logical content order maintained
- 1.4.3 Contrast (AA): Default styles meet 4.5:1 contrast ratio (customizable)
- 1.4.4 Resize Text (AA): Fully functional at 200% text size
- 1.4.10 Reflow (AA): No horizontal scrolling at 320px width
- 2.1.1 Keyboard (A): All functionality available via keyboard
- 2.1.2 No Keyboard Trap (A): Focus never trapped within slider
- 2.4.3 Focus Order (A): Logical, predictable focus order
- 2.4.7 Focus Visible (AA): Clear visual focus indicators
- 2.5.1 Pointer Gestures (A): Single-point activation available (buttons)
- 2.5.2 Pointer Cancellation (A): Actions triggered on up-event
- 3.1.1 Language of Page (A): Inherits page language
- 3.2.1 On Focus (A): No context changes on focus
- 3.2.2 On Input (A): No unexpected context changes
- 3.3.1 Error Identification (A): Clear error messages when applicable
- 4.1.2 Name, Role, Value (A): All interactive elements properly labeled
- 4.1.3 Status Messages (AA): ARIA live regions for dynamic updates
| Key | Action |
|---|---|
Tab |
Navigate to slider controls |
Shift + Tab |
Navigate backward |
Enter / Space |
Activate focused button |
Left Arrow |
Previous block (when focused) |
Right Arrow |
Next block (when focused) |
Home |
First block (when focused) |
End |
Last block (when focused) |
- ARIA Regions: Slider identified as interactive region
- ARIA Labels: Descriptive labels for all controls
- ARIA Live Regions: Announces slide changes
- Role Attributes: Proper semantic roles throughout
- Focus Management: Intelligent focus handling
When Adapt's accessibility mode is active:
{
"_isDisabledWhenAccessibilityActive": true
}- Slider automatically disables
- Blocks display vertically (standard article layout)
- Removes complex navigation
- Simplifies screen reader experience
Tested with:
- JAWS (Job Access With Speech)
- NVDA (NonVisual Desktop Access)
- VoiceOver (macOS/iOS)
- TalkBack (Android)
- Narrator (Windows)
The Article Block Slider fully supports internationalization (i18n) and localization.
Fully Supported Languages:
- Arabic (ar)
- Hebrew (he)
- Persian/Farsi (fa)
- Urdu (ur)
RTL Features:
- Automatic slide direction reversal
- RTL-aware swipe gestures (left/right swapped)
- Mirrored navigation button positions
- Proper text alignment
- RTL-specific CSS classes
The plugin uses Adapt Framework's global language strings for:
- Navigation labels ("Previous", "Next")
- Accessibility announcements
- Error messages
Translation Coverage:
All UI strings are translatable through Adapt's course.json globals:
{
"_globals": {
"_accessibility": {
"_ariaLabels": {
"previous": "Previous",
"next": "Next"
},
"_ariaRegions": {
"articleBlockSlider": "Block slider navigation"
}
}
}
}For courses with language switching:
- All labels automatically update on language change
- RTL mode automatically activates for RTL languages
- Navigation logic adapts to text direction
- No additional configuration required
The Article Block Slider is built with responsive design principles and adapts seamlessly across devices.
| Size | Breakpoint | Description | Slider Behavior |
|---|---|---|---|
| Extra Large | 1440px+ |
Desktop HD | Full functionality |
| Large | 1024px - 1439px |
Desktop/Laptop | Full functionality |
| Medium | 768px - 1023px |
Tablet | Touch-optimized |
| Small | 0px - 767px |
Mobile | Touch-optimized |
Control which breakpoints display the slider:
{
"_isEnabledOnScreenSizes": "large medium"
}Options:
"large"- Desktop only"large medium"- Desktop and tablet (default)"large medium small"- All screen sizes"medium"- Tablet only"small"- Mobile only
Behavior when disabled:
- Blocks display vertically (standard article layout)
- No slider navigation shown
- Full content accessibility maintained
- Arrow or tab navigation
- Hover states on controls
- Keyboard shortcuts enabled
- Mouse wheel support
- Touch/swipe gestures enabled
- Larger touch targets
- Optimized button sizing
- Touch feedback animations
- Full-width slides
- Simplified navigation (arrows only recommended)
- Touch-optimized controls
- Reduced animation complexity for performance
- Portrait: Vertical layout optimization
- Landscape: Horizontal layout optimization
- Automatic: Adapts on orientation change
- No Reload Required: Seamless transitions
Thoroughly tested and supported on:
| Browser | Minimum Version | Status |
|---|---|---|
| Chrome | 90+ | β Fully Supported |
| Firefox | 88+ | β Fully Supported |
| Safari | 14+ | β Fully Supported |
| Edge | 90+ | β Fully Supported |
| Opera | 76+ | β Fully Supported |
| Browser | Platform | Status |
|---|---|---|
| Safari Mobile | iOS 14+ | β Fully Supported |
| Chrome Mobile | Android 9+ | β Fully Supported |
| Samsung Internet | Android 9+ | β Fully Supported |
| Firefox Mobile | Android 9+ | β Fully Supported |
| Feature | Support | Fallback |
|---|---|---|
| ES6 Modules | Required | None (Framework requirement) |
| CSS Transitions | Required | None (Modern browsers) |
| Touch Events | Required for gestures | Falls back to button navigation |
| Flexbox | Required | None (Modern browsers) |
| ARIA | Required | None (Accessibility standard) |
Not Supported:
- Internet Explorer (all versions)
- Chrome < 90
- Firefox < 88
- Safari < 14
- Edge Legacy (EdgeHTML)
Reason: Version 4.x requires Adapt Framework v5.53.5+ which uses modern web standards (ES6 modules, modern JavaScript).
The Article Block Slider uses BEM (Block Element Modifier) naming convention for easy customization.
.abs // Block slider root
βββ .abs__container // Main container
β βββ .has-arrows // Modifier: arrow navigation
β βββ .has-tabs // Modifier: tab navigation
βββ .abs__slide-container // Slide container
β βββ .js-abs-slide-container // JavaScript hook
βββ .abs__toolbar // Toolbar container
β βββ .abs__btn-arrow-container
β β βββ .abs__btn-arrow // Arrow button
β β β βββ .is-left // Left arrow modifier
β β β βββ .is-right // Right arrow modifier
β β β βββ .is-disabled // Disabled state
β β βββ .icon // Arrow icon
β βββ .abs__btn-tab-container
β βββ .abs__btn-tab // Tab button
β βββ .home // First tab modifier
β βββ .is-selected // Selected state
βββ .abs__toolbar-bottom // Bottom toolbar
Create a custom LESS/CSS file:
// Custom Article Block Slider styles
.abs {
// Custom container styling
&__container {
background: #f5f5f5;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
// Custom arrow buttons
&__btn-arrow {
background: #007bff;
color: white;
border-radius: 50%;
width: 48px;
height: 48px;
&:hover {
background: #0056b3;
transform: scale(1.1);
}
&.is-disabled {
background: #ccc;
cursor: not-allowed;
}
}
// Custom tab styling
&__btn-tab {
background: transparent;
border-bottom: 3px solid transparent;
transition: all 0.3s ease;
&.is-selected {
border-bottom-color: #007bff;
font-weight: bold;
}
&:hover {
background: rgba(0,123,255,0.1);
}
}
}
// RTL-specific overrides
.dir-rtl .abs {
&__btn-arrow {
&.is-left { /* Custom RTL left arrow */ }
&.is-right { /* Custom RTL right arrow */ }
}
}Override default variables in your theme:
// Article Block Slider Variables
// Spacing
@abs-container-padding: 20px;
@abs-toolbar-margin: 15px;
@abs-button-spacing: 10px;
// Colors
@abs-button-bg: @primary-color;
@abs-button-hover-bg: darken(@primary-color, 10%);
@abs-button-disabled-bg: @disabled-color;
@abs-tab-selected-color: @primary-color;
// Sizing
@abs-arrow-size: 44px;
@abs-arrow-icon-size: 24px;
@abs-tab-height: 48px;
@abs-tab-min-width: 100px;
// Transitions
@abs-slide-duration: 0.6s;
@abs-height-duration: 0.3s;
@abs-button-transition: 0.2s;
// Effects
@abs-button-shadow: 0 2px 4px rgba(0,0,0,0.2);
@abs-container-shadow: 0 1px 3px rgba(0,0,0,0.1);The plugin automatically inherits from your Adapt theme:
- Colors from
_colorsvariables - Typography from
_typographyvariables - Spacing from
_layoutvariables - Animations from
_transitionsvariables
- Lazy Loading: Images load only when slide is visible
- Promise-based: Modern async image handling
- No jQuery: Uses native browser APIs for better performance
- CSS Transitions: Hardware-accelerated animations
- Transform-based: Uses GPU for smooth 60fps animations
- Debounced Events: Resize/scroll handlers optimized
- RequestAnimationFrame: Smooth animation timing
- Event Cleanup: Proper event listener removal
- No Memory Leaks: Clean component lifecycle
- Efficient DOM: Minimal DOM manipulation
- Cached Selectors: jQuery selectors cached for reuse
Typical performance on modern devices:
| Metric | Desktop | Tablet | Mobile |
|---|---|---|---|
| Initial Load | < 100ms | < 150ms | < 200ms |
| Slide Transition | 60 FPS | 60 FPS | 60 FPS |
| Touch Response | < 16ms | < 16ms | < 16ms |
| Memory Usage | ~ 2MB | ~ 2MB | ~ 2MB |
- Optimize Images: Use appropriately sized images for each breakpoint
- Limit Blocks: Recommended maximum 10 blocks per article
- Minimize Content: Keep slide content lightweight
- Test Performance: Use browser DevTools to monitor performance
- Consider Animations: Disable animations on older devices if needed
-
Navigation Exclusivity
- Only one navigation type (arrows OR tabs) can be active at a time
- Using both simultaneously will cause UI conflicts
-
Quicknav Compatibility
- Potential conflicts with Quicknav extension when slider is the last article
- Workaround: Add a standard article after slider articles
-
Screen Size Requirements
- Slider automatically disables on screen sizes not in
_isEnabledOnScreenSizes - Minimum recommended width: 320px
- Slider automatically disables on screen sizes not in
-
Block Content
- Very tall blocks may require
_hasUniformHeight: false - Mixed content heights work best with height animations enabled
- Very tall blocks may require
-
Accessibility Mode
- Slider disabled when accessibility is active (if configured)
- Falls back to standard vertical layout
β Compatible With:
- All Adapt Framework v5.53.5+ extensions
- All standard Adapt components
- All Adapt themes
- SCORM 1.2 and 2004
- xAPI (Tin Can API)
- Quicknav (when slider is last article)
- Custom scroll-hijacking scripts
adapt-articleBlockSlider/
βββ js/
β βββ articleBlockSlider.js // Main entry point
β βββ adapt-articleExtension.js // Article extension logic
β βββ adapt-articleModel.js // Model with business logic
β βββ adapt-articleView.js // View with UI logic
βββ less/
β βββ articleBlockSlider-article.less // Styles
βββ templates/
β βββ articleBlockSlider-article.hbs // Handlebars template
βββ properties.schema // Configuration schema
βββ bower.json // Bower configuration
βββ package.json // NPM configuration
βββ example.json // Configuration examples
βββ CHANGELOG.md // Version history
βββ LICENSE // GPL-3.0 license
βββ README.md // This file
1. Initialization
ββ> articleBlockSlider.js imports required modules
ββ> adapt-articleExtension.js extends ArticleView/Model
2. Model Initialization (adapt-articleModel.js)
ββ> isBlockSliderEnabled() checks configuration
ββ> Returns true/false based on settings
3. View Initialization (adapt-articleView.js)
ββ> If enabled, creates BlockSliderView
ββ> Sets up touch configuration
ββ> Binds event listeners
4. Rendering
ββ> Template renders slider structure
ββ> Blocks added to container
ββ> Navigation controls created
5. Interaction
ββ> User interactions trigger navigation
ββ> Animations via CSS transitions
ββ> Focus management for accessibility
6. Cleanup
ββ> Event listeners removed
ββ> Resources freed
// Check if slider is enabled
isBlockSliderEnabled()
// Returns: Boolean
// Description: Checks _isEnabled and accessibility state// Setup touch/swipe configuration
_blockSliderSetupTouchConfiguration()
// Description: Initializes touch event handlers and sensitivity
// Setup event listeners
_blockSliderSetupEventListeners()
// Description: Binds device, page, and model events
// Render slider
_blockSliderRender()
// Description: Renders slider template and structure
// Navigate to block
_blockSliderMoveIndex(index, animate)
// Parameters:
// - index: Number - Block index to navigate to
// - animate: Boolean - Whether to animate transition
// Handle touch start
_onTouchStart(event)
// Parameters:
// - event: TouchEvent - Native touch event
// Handle touch move
_onTouchMove(event)
// Parameters:
// - event: TouchEvent - Native touch event
// Handle touch end
_onTouchEnd(event)
// Parameters:
// - event: TouchEvent - Native touch event// Triggered when slider is ready
Adapt.trigger('articleBlockSlider:ready', view);
// Triggered before slide changes
Adapt.trigger('articleBlockSlider:beforeSlide', {
from: currentIndex,
to: newIndex,
view: view
});
// Triggered after slide changes
Adapt.trigger('articleBlockSlider:afterSlide', {
index: currentIndex,
view: view
});
// Triggered on device change
Adapt.trigger('device:changed', size);Create a custom extension:
// custom-slider-extension.js
import Adapt from 'core/js/adapt';
Adapt.on('articleBlockSlider:ready', function(view) {
// Add custom functionality
console.log('Slider ready:', view);
});
Adapt.on('articleBlockSlider:afterSlide', function(data) {
// Track slide changes
console.log('Moved to slide:', data.index);
// Custom analytics
trackSlideView(data.index);
});Enable debug mode in browser console:
// Enable verbose logging
Adapt.config.set('_debug', true);
// Monitor slider events
Adapt.on('all', function(event) {
if (event.includes('articleBlockSlider')) {
console.log('Event:', event, arguments);
}
});
// Check slider state
$('.abs__container').data('blockSlider');Problem: Slider doesn't show, blocks are vertical
Solutions:
- Check
_isEnabled: truein article configuration - Verify screen size in
_isEnabledOnScreenSizes - Check browser console for errors
- Ensure Adapt Framework v5.53.5+
Problem: Swipe gestures don't navigate slides
Solutions:
- Verify
_enableTouchSwipe: true - Check
_swipeSensitivityvalue (try 30-50) - Ensure touch device is detected
- Check browser touch event support
Problem: Arrows or tabs not visible
Solutions:
- Check
_hasArrowsor_hasTabsistrue - Verify only ONE navigation type is enabled
- Check CSS is loading correctly
- Inspect HTML for
.abs__toolbar
Problem: Transitions are jerky or broken
Solutions:
- Check browser supports CSS transitions
- Reduce
_slideAnimationDurationvalue - Disable
_hasUniformHeightfor better performance - Check for CSS conflicts
Problem: Screen reader or keyboard issues
Solutions:
- Ensure ARIA labels in globals
- Check focus order with Tab key
- Test with
_isDisabledWhenAccessibilityActive: true - Verify browser accessibility features enabled
Enable debug mode in config.json:
{
"_debug": true,
"_logging": {
"_isEnabled": true,
"_level": "debug"
}
}- Check Documentation: Review this README and CHANGELOG
- Search Issues: Check existing issues
- Create Issue: Open a new issue with:
- Adapt Framework version
- Plugin version
- Browser and device information
- Steps to reproduce
- Screenshots/console errors
See CHANGELOG.md for detailed version history.
Latest Stable Release: v4.3.10 (2025-11-25)
This is a critical hotfix release that resolves complete plugin breakage introduced in v4.3.7. All users should upgrade to v4.3.8 immediately.
What to Know:
- β v4.3.8: Fully functional, tested, and production-ready
- β v4.3.7: Completely broken - causes TypeError and text not displaying
- β v4.3.6 and earlier: Stable, but missing touch button improvements
Download: Get v4.3.10 from Releases
β οΈ Important: Versions 4.3.7, 4.3.8, and 4.3.9 had bugs. Please use v4.3.10.
What's New in 4.3.10:
- CRITICAL FIX: Removed complex touch button handlers that broke all button functionality
- Buttons now work reliably on both desktop and mobile devices
- Simplified to use standard click events which work universally
- Swipe gestures still functional
What Was in 4.3.9:
- Fixed debounce implementation (but broke buttons with touch handlers)
What Was in 4.3.8:
- CRITICAL HOTFIX: Fixed complete plugin breakage from v4.3.7
- Resolved "Uncaught TypeError: n.apply is not a function"
- Fixed text not displaying in compiled courses
- Restored full functionality in Adapt Authoring Tool
- Touch Button Improvements Retained:
- Navigation buttons (arrows/tabs) now respond reliably to taps on touch devices
- Implemented tap vs swipe detection (10px movement threshold)
- Prevents accidental button activation while swiping through slides
- Touch gestures on content area work normally
Recent Version History:
- 4.3.10 (2025-11-25): Fixed buttons not working - removed touch handlers, use simple click events
- 4.3.9 (2025-11-25): β BROKE BUTTONS - Touch handlers prevented clicks
- 4.3.8 (2025-11-25):
β οΈ HAD BUGS - Partial fix, debounce issue remained - 4.3.7 (2025-11-25): β BROKEN - Introduced critical bug
- 4.3.6 (2025-11-24): Removed native orientationchange listener to prevent duplicate processing
- 4.3.5 (2025-11-24): Eliminated window resize triggers to prevent plugin interaction issues
- 4.3.4 (2025-11-24): Added debounced resize triggers for better orientation change performance
- 4.3.3 (2025-11-24): Fixed console errors in resize handlers
- 4.3.2 (2025-11-24): Fixed orientation change handling on touch devices
Core Features:
- β Full WCAG 2.1 AA compliance
- β Touch/swipe support with reliable button handling
- β Modern ES6 codebase for Adapt v5.53.5+
- β RTL language support
- β Responsive design across all devices
Previous Versions:
- 4.2.2: Production-ready release for AAT deployment
- 4.2.1: Fixed schema structure
- 4.2.0: Course-level configuration (superseded)
- 4.1.0: Touch/swipe navigation added
- 4.0.1: Deprecated API fixes
- 4.0.0: Major refactor for v5.53.5
- 3.x: Legacy versions (Adapt v4 compatible)
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Clone your fork
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Test thoroughly
- Commit with clear messages:
git commit -m "Add feature: description" - Push to your fork:
git push origin feature/my-feature - Open a pull request
- ES6+: Use modern JavaScript syntax
- BEM CSS: Follow BEM naming convention
- Comments: Document complex logic
- Accessibility: Maintain WCAG 2.1 AA compliance
- Testing: Test on multiple browsers/devices
- Documentation: Update README for new features
- Code follows project style
- All tests pass
- Documentation updated
- CHANGELOG.md updated
- No console errors/warnings
- Accessibility tested
- Cross-browser tested
- Mobile tested
GNU General Public License v3.0
Copyright (C) 2024 Article Block Slider Contributors
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
- Adapt Learning Framework: GPL-3.0
- Handlebars: MIT License
- LESS: Apache License 2.0
- π Documentation: You're reading it!
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Issues
- π¦ Releases: GitHub Releases
- π§ Source Code: GitHub Repository
- Adapt Learning Community: https://community.adaptlearning.org/
- Gitter Chat: Adapt Learning Gitter
- Repository: https://github.com/fosterc1/adapt-articleBlockSlider
- Issues: https://github.com/fosterc1/adapt-articleBlockSlider/issues
- Original Author: Kineo
- Current Maintainer: Foster C.
- Contributors: See Contributors
- Adapt Framework: Adapt Learning
Made with β€οΈ for the Adapt Learning Community