olu 1.0.0
olu: ^1.0.0 copied to clipboard
RTL-first Flutter UI kit with zero dependencies — Arabic typography (kashida, tajweed, bidi), responsive Bento grids, and RTL-aware carousels.
1.0.0 #
First public release.
OLUText #
- Drop-in Text/RichText replacement with full API parity (
softWrap,locale,strutStyle, selection APIs). - Smart global justify via
OLUTextAlign.justify— kashida (Arabic), word-spacing (Hebrew), Flutter justify (Latin/CJK). - Kashida exclusions — sacred words (الله, اللّٰه, محمد, …) and hamza words (شيء, …) are never stretched; harakat-safe insertion;
kashidaExclusions,maxKashidaPerLine,kashidaDensity. - Script-aware typography via
LocaleTypography(Arabic/Hebrew 1.65, Latin 1.35, CJK 1.5);letterSpacingguards;FontFeatureliga/calt;OLUTextVariant.mushaf. - Public bidi utilities —
OLUBidi.isolateLtr,isolateRtl,normalizeMixed. - Mixed-script spans with baseline alignment (Arabic/Latin/CJK);
OLUText.auto()script detection. - Rich spans:
OLUTextSpan,OLUHebrewSpan,OLUCjkSpan,OLULinkSpan,OLUIconSpan,OLUEmojiSpan. - Tajweed coloring —
OLUTajweedSpan+OLUTajweedBuilder.mergeSpans(same-color run grouping); phase B per-glyphOLUText.tajweed+OLUTajweedRulevia custom painter. - Font-aware kashida — auto tatweel width scaling for Uthmanic/Quranic fonts; optional
kashidaTatweelScale. - CJK keep-all —
OLUCjkText.preventMidWordBreaks+preventCjkMidWordBreaksonOLUText. - Persian/Urdu — detected as Arabic script; verified via
ScriptDetector(exported). - Arabic text utils —
OLUArabicText(removeDiacritics, normalizeArabic, containsSacredPhrase). - Visual effects: gradient, shadows, stroke, animated gradient via
OLUText.styled/OLUText.gradient. - Marquee scrolling via
OLUText.marquee. - Selection mitigations — default
selectionHeightStyle: includeLineSpacingMiddle;forceTextDirection.
OLUBento #
- Smart grid packing with RTL auto-mirroring, scroll, responsive breakpoints, drag reorder.
OLUBentoThemeDatatheme extension for tile radius, padding, gaps, skeleton colors.- Base shell
OLUBentoTilewith loading/error/empty states. - Preset tiles (16): Hero, Stat, Media, Banner, List, CTA, Icon, Chart, Profile, Progress, ProgressRing, Quote, Event, Alert, Rating, Toggle.
OLUBentoLayouts.fullCatalog()— demo grid with all tile types.- Layout helpers:
OLUBentoLayouts,OLUBentoSpans, exportedBentoGridPacker.
OLUCarousel #
- RTL-aware swipe physics with direction-correct indicators and arrows.
OLUCarouselThemeDatatheme extension for gap, viewport, indicator, and arrow styling.OLUCarouselController— programmatic next/previous/animateToPage withrealIndexnotifier.- Autoplay with pause-on-touch and pause-on-manual-navigate.
- Infinite loop via virtual page indexing.
- Indicator styles: glass dots (tappable), bar progress, numeric fraction.
- Page transforms: scale and parallax via
OLUCarouselEnlargeStrategy. - Preset slides (6): Hero, Image, Product, Text, Stat, CTA.
OLUCarouselLayouts.hero3(),.productStrip(),.fullCatalog().
Core #
- Zero external dependencies; theme-only colors;
RepaintBoundaryon all widgets.