ListSm.art Documentation

Complete Guide to Features, Functions, and Technical Implementation

HTML5 CSS3 JavaScript jQuery Accessibility Responsive Design

Overview

ListSm.art is a modern, and accessible list management application designed for simplicity and shareability. Built with vanilla JavaScript and jQuery, it provides a seamless experience for creating, managing, and sharing lists without requiring user accounts or server-side storage.

Key Highlights

  • No Registration Required: Start creating lists immediately
  • URL-Based Sharing: Share lists via direct URL links
  • Fully Accessible: WCAG 2.1 AA compliant
  • Responsive Design: Works on all devices
  • Offline Capable: Works without internet connection

Core Features

List Management

Add, edit, and organize items with intuitive controls. Each item supports up to 200 characters with real-time character counting.

Task Completion

Mark items as complete with visual indicators. Completed items are visually distinguished and can be filtered or cleared.

URL Sharing

Share your entire list via URL. The list data is encoded in the URL, making it instantly shareable without external dependencies.

Smart URL Detection

Automatically detects URLs in list items and converts them to clickable links that open in new tabs.

Bulk Operations

Clear completed items or remove all items with confirmation dialogs. Efficient list management for large collections.

List Statistics

Real-time statistics showing completed and pending items. Visual progress tracking for your lists.

User Guide

Getting Started

  1. Add Items: Type your item in the input field and press Enter or click "Add to List"
  2. Mark Complete: Click the circle icon next to any item to mark it as complete
  3. Delete Items: Click the trash icon to remove individual items
  4. Bulk Actions: Use "Clear Completed" or "Clear All" buttons for bulk operations
  5. Share List: Click "Share List" to copy the URL to your clipboard

Keyboard Shortcuts

Shortcut Action
Enter Add new item to list
Escape Return focus to input field
Tab Navigate between interactive elements

URL Sharing

When you share a list URL, the recipient will see your exact list when they open the link. The URL contains all list data encoded in base64 format, making it completely self-contained.

Pro Tips

  • Use descriptive item names for better organization
  • Include URLs in your items - they'll automatically become clickable
  • Share lists with colleagues for collaborative planning
  • Bookmark your list URLs for quick access

Technical Implementation

Architecture

ListSm.art is built using a modern front-end stack with emphasis on accessibility and performance:

Frontend Stack

  • HTML5 with semantic markup
  • CSS3 with CSS Grid and Flexbox
  • Vanilla JavaScript (ES6+)
  • jQuery for DOM manipulation

Responsive Design

  • Mobile-first approach
  • CSS Grid and Flexbox layouts
  • Dynamic sizing based on screen size
  • Touch-friendly interface

Data Storage

  • In-memory JavaScript arrays
  • URL-based persistence
  • Base64 encoding for data transfer
  • No server-side storage required

Performance

  • Lightweight bundle size
  • Efficient DOM updates
  • Minimal external dependencies
  • Fast loading times

Data Structure

Each list item is stored as a JavaScript object with the following structure:

{ id: number, // Unique identifier text: string, // Item content (max 200 chars) completed: boolean, // Completion status createdAt: Date // Creation timestamp }

URL Encoding Process

  1. List data is serialized to JSON
  2. JSON string is URI-encoded for URL safety
  3. Encoded string is converted to base64
  4. Base64 string is added as URL parameter

Accessibility Features WCAG 2.1 AA

WCAG 2.1 AA Compliance

ListSm.art meets or exceeds Web Content Accessibility Guidelines 2.1 Level AA standards, ensuring accessibility for users with disabilities.

Visual Accessibility

  • High contrast ratios (4.5:1 minimum)
  • Clear focus indicators
  • Semantic color usage
  • Responsive typography

Keyboard Navigation

  • Full keyboard accessibility
  • Logical tab order
  • Skip links for quick navigation
  • Escape key functionality

Screen Reader Support

  • Semantic HTML structure
  • ARIA labels and roles
  • Live region announcements
  • Descriptive button labels

Mobile Accessibility

  • Touch-friendly targets (44px minimum)
  • Responsive design
  • Gesture-friendly interface
  • Zoom support up to 200%

Accessibility Testing

The application has been tested with:

URL API Documentation

URL Structure

ListSm.art uses URL parameters to store and share list data:

https://example.com/?list=eyJpZCI6MSwidGV4dCI6IkV4YW1wbGUgaXRlbSIsImNvbXBsZXRlZCI6ZmFsc2UsImNyZWF0ZWRBdCI6IjIwMjQtMDEtMDFUMDA6MDA6MDAuMDAwWiJ9

Parameter Details

Parameter Type Description
list string Base64-encoded JSON array of list items

Data Encoding Process

// Encoding const jsonString = JSON.stringify(listItems); const base64String = btoa(unescape(encodeURIComponent(jsonString))); // Decoding const jsonString = decodeURIComponent(escape(atob(base64String))); const listItems = JSON.parse(jsonString);

URL Limitations

Important Notes

  • URLs have a maximum length limit (typically 2048 characters)
  • Very long lists may exceed URL limits
  • Special characters are properly encoded
  • URLs are shareable across all modern browsers

File Structure

list-ui/ ├── index.html # Main application page ├── styles.css # Complete styling and responsive design ├── main.js # Core application logic ├── style.js # Dynamic styling and screen detection └── documentation.html # This documentation page

File Descriptions

index.html

Main HTML structure with semantic markup, ARIA attributes, and accessibility features. Contains the complete user interface.

  • Semantic HTML5 elements
  • ARIA roles and labels
  • Responsive meta tags
  • External dependencies

styles.css

Comprehensive CSS with accessibility improvements, responsive design, and modern layout techniques.

  • CSS custom properties
  • Flexbox and Grid layouts
  • Accessibility focus styles
  • Responsive breakpoints

main.js

Core JavaScript functionality including list management, URL persistence, and accessibility features.

  • List CRUD operations
  • URL encoding/decoding
  • Accessibility announcements
  • Event handling

style.js

Dynamic styling and screen size detection for responsive behavior and adaptive layouts.

  • Screen size detection
  • Dynamic CSS variables
  • Responsive adjustments
  • Performance optimization