{"id":51240306,"url":"https://github.com/fnlla/web","last_synced_at":"2026-06-29T00:00:42.117Z","repository":{"id":368056087,"uuid":"1280015464","full_name":"fnlla/web","owner":"fnlla","description":"Production-ready proprietary no-build UI framework for static and server-rendered websites.","archived":false,"fork":false,"pushed_at":"2026-06-28T21:10:23.000Z","size":2622,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-28T22:24:52.600Z","etag":null,"topics":["css-framework","design-system","design-tokens","fnlla","fnlla-ui","no-build","proprietary","server-rendered","static-sites","ui-framework"],"latest_commit_sha":null,"homepage":"https://fnlla.co.uk","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fnlla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":".github/SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-25T07:38:24.000Z","updated_at":"2026-06-28T21:10:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fnlla/web","commit_stats":null,"previous_names":["fnlla/web"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/fnlla/web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnlla%2Fweb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnlla%2Fweb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnlla%2Fweb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnlla%2Fweb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fnlla","download_url":"https://codeload.github.com/fnlla/web/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnlla%2Fweb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34907985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css-framework","design-system","design-tokens","fnlla","fnlla-ui","no-build","proprietary","server-rendered","static-sites","ui-framework"],"created_at":"2026-06-29T00:00:30.485Z","updated_at":"2026-06-29T00:00:42.087Z","avatar_url":"https://github.com/fnlla.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FNLLA Web\n\n[![Release](https://img.shields.io/badge/release-v1.0.7-2f65eb?style=flat-square)](https://github.com/fnlla/web/releases/tag/v1.0.7)\n[![Hardening](https://github.com/fnlla/web/actions/workflows/fnlla-web-hardening.yml/badge.svg?branch=main)](https://github.com/fnlla/web/actions/workflows/fnlla-web-hardening.yml)\n[![License](https://img.shields.io/badge/license-MIT-111827?style=flat-square)](./LICENSE.md)\n[![Runtime](https://img.shields.io/badge/runtime-css%20%2B%20js%20%2B%20icons-0f766e?style=flat-square)](./docs/index.html)\n[![Docs](https://img.shields.io/badge/docs-9%20pages-c26d00?style=flat-square)](./docs/guides.html)\n\n## What FNLLA Web is\n\nFNLLA Web is a standalone open-source UI kit for static and server-rendered websites. It packages reusable layout, component and interaction patterns without coupling them to any specific client, brand or CMS.\n\nThe supported browser runtime contract is intentionally small:\n\n- `assets/css/fnlla-web.css`\n- `assets/js/fnlla-web.js`\n- `assets/icons/`\n\nThat runtime can be consumed directly from the repository or copied as the generated runtime-only handoff under `dist/fnlla-web/`.\n\nFNLLA Web is produced, maintained and distributed by TechAyo LTD (techayo.co.uk).\n\nCopyright (c) 2026 TechAyo LTD (techayo.co.uk). Released under the MIT License.\n\n## Name origin\n\nThe name `FNLLA` comes from Finella, and more specifically from Finella Gardens in Dundee, UK. That location is the origin point of the FNLLA Web name.\n\n## Ownership and license\n\nFNLLA Web is open-source software released under the MIT License by TechAyo LTD (techayo.co.uk).\n\nUse of the source code is governed by `LICENSE.md`.\n\nSupport, maintenance and release-cadence expectations are documented in `SUPPORT.md`.\n\nTrademark and branding boundaries for the FNLLA product names and marks are documented in `TRADEMARKS.md`.\n\nThe current repository identity is defined by state files that should stay aligned:\n\n- `MANIFEST.json`\n- `README.md`\n- `VERSION`\n- `LICENSE.md`\n- `SUPPORT.md`\n- `TRADEMARKS.md`\n\nRepository participation and disclosure rules also rely on:\n\n- `CODE_OF_CONDUCT.md`\n- `SECURITY.md`\n- `.github/CONTRIBUTING.md`\n- `.github/RELEASE_TEMPLATE.md`\n- `.github/SUPPORT.md`\n\nRepository identity assets also rely on:\n\n- `docs/assets/brand/fnlla-web.svg`\n- `docs/assets/brand/fnlla-web-dark.svg`\n- `docs/assets/brand/fnlla-github.svg`\n- `docs/assets/brand/fnlla-github.png`\n\n## Who it is for\n\nUse FNLLA Web when a project needs:\n\n- a lightweight front-end starter without a build step\n- reusable marketing and service-oriented components\n- a token-based design system that can be re-themed quickly\n- simple JavaScript for common UI interactions\n\n## Support and release expectations\n\nAnyone may use FNLLA Web under the MIT License, including for self-service and commercial work.\n\nTechAyo LTD does not promise support, maintenance, SLA coverage or a fixed release cadence for third-party projects built on FNLLA Web.\n\nPublic updates are shipped when TechAyo LTD decides they are appropriate.\n\nUse `SUPPORT.md` for the exact support boundary and `TRADEMARKS.md` for branding rules.\n\n## Documentation routes\n\nUse the browser docs based on the question you are answering:\n\n- `docs/index.html` for the overview and reading order\n- `docs/contract.html` for packaging, handoff, hooks and runtime-boundary rules\n- `docs/layout.html` for page shells, containers, grids and anti-patterns\n- `docs/components.html` for reference markup, component demos and form patterns\n- `docs/sections.html` for composable page sections\n- `docs/utilities.html` for utilities, helper classes and the shipped local FNLLA Icons catalogue\n- `docs/guides.html` for the guide index and reading order\n- `docs/component-classification.html` for component-selection rules\n- `docs/team-usage-and-maintenance.html` for workflow and maintenance guidance\n\nUse the docs for detailed examples. README stays intentionally slimmer and focuses on the repository boundary, runtime contract and maintainer workflow.\n\n## How to install it in another project\n\n1. Copy the entire `fnlla-web` folder into the new project, or use the generated runtime-only export under `dist/fnlla-web/` when you want a lean handoff.\n2. Keep the published `assets/` runtime tree together so relative paths stay simple.\n3. Link the runtime files from the page.\n4. Use the component patterns from `docs/components.html` and `docs/sections.html` rather than rebuilding examples from scratch.\n5. If you maintain the framework itself, edit source files under `src/` and republish before shipping changes.\n\nThe framework runs as plain static HTML, CSS and JavaScript. No npm, Composer, bundler or build step is required.\n\nBasic runtime includes:\n\n```html\n\u003clink rel=\"stylesheet\" href=\"fnlla-web/assets/css/fnlla-web.css\"\u003e\n\u003cscript src=\"fnlla-web/assets/js/fnlla-web.js\"\u003e\u003c/script\u003e\n```\n\nIf the framework files sit at the site root instead, use `assets/css/fnlla-web.css` and `assets/js/fnlla-web.js`.\n\n## Public runtime helpers\n\nThe stable browser API lives under `window.FNLLAWEB`.\n\n- `window.FNLLAWEB.init(root)` performs idempotent initialization for HTML injected after first page load.\n- `window.FNLLAWEB.setTheme(theme, target)` applies the documented `default` or `dark` theme to `body` by default, or to a specific wrapper when a selector or element is provided.\n- `window.FNLLAWEB.getDocumentTitle()`, `window.FNLLAWEB.getDocumentTitleConfig()`, `window.FNLLAWEB.syncDocumentTitle(config)` and `window.FNLLAWEB.setDocumentTitle(config)` manage professional browser-tab titles from declarative HTML metadata or dynamic runtime state.\n- `window.FNLLAWEB.getConsentState()`, `window.FNLLAWEB.hasConsent(category)`, `window.FNLLAWEB.openConsentSettings()`, `window.FNLLAWEB.acceptConsent()`, `window.FNLLAWEB.rejectConsent()`, `window.FNLLAWEB.saveConsent(state)` and `window.FNLLAWEB.resetConsent()` manage the documented first-party consent cookie flow.\n- `window.FNLLAWEB.showToast(target)` and the matching hide helper support non-blocking notification flows.\n- `window.FNLLAWEB.showOffcanvas(target)` and the matching hide helper support side-panel workflows.\n- Modal, dropdown, popover, tooltip and scrollspy helpers are documented in `docs/contract.html`.\n\nThe helper contract is intentionally small. For the full supported surface, use `docs/contract.html` as the stable reference.\n\n## FNLLA Icons\n\nFNLLA Web ships a branded internal icon layer called `FNLLA Icons` under `assets/icons/`.\n\nImportant local paths:\n\n- `assets/icons/sprite.svg`\n- `assets/icons/search.svg`\n- `assets/icons/NOTICE.md`\n- `assets/icons/LICENSE`\n\nOperational rules:\n\n- do not load icons from external hosts such as `lucide.dev`, `jsdelivr`, `unpkg` or other CDNs\n- keep icon usage local and offline\n- use `docs/utilities.html#utility-icons` when you need to browse the shipped set\n\n## Issue and release workflow\n\nUse the repository-level GitHub templates when work moves from implementation into maintenance:\n\n- bug reports for runtime, docs or browser regressions\n- docs/runtime parity reports when the shipped contract and demo surface drift apart\n- feature proposals when additive capability needs explicit scope and runtime impact\n- the pull request template for runtime, docs, dist and accessibility confirmation\n- the contributing and security guidance for repository workflow, disclosure and business-boundary questions\n\nFor releases, keep the flow lightweight and repeatable:\n\n1. Align `README.md`, `VERSION`, `LICENSE.md`, `SUPPORT.md` and `TRADEMARKS.md`.\n2. Publish runtime files and generated docs.\n3. Validate runtime assets, docs parity and browser behavior.\n4. Publish the release commit to `main`.\n5. Create the version tag and GitHub release notes using `.github/RELEASE_TEMPLATE.md`.\n6. Open follow-up work in the next milestone when cleanup or regression hardening remains.\n\n## Maintainer workflow\n\nThe repository root is the maintainer workspace. Generated outputs should not be treated as hand-authored sources.\n\nThe docs browser behavior bundle under `docs/assets/docs.js` is generated during publish from readable source modules under `src/docs/js/`.\n\nAuthoritative maintainer scripts:\n\n- `scripts/fnlla-web-manifest.mjs` defines source ordering, docs pages and the runtime export contract.\n- `scripts/publish-fnlla-web.mjs` republishes runtime files, rebuilds generated guide HTML and refreshes `dist/fnlla-web/`.\n- `scripts/build-guides.mjs` turns maintainer-authored Markdown guides into published HTML pages.\n- `scripts/validate-fnlla-web.mjs` checks repository structure, docs sync, runtime export generation and release metadata.\n- `scripts/test-fnlla-web-browser.mjs` runs the real browser smoke test against the published runtime.\n- `scripts/test-fnlla-web-browser-matrix.mjs` replays the smoke flow across every detected supported local browser, including Firefox when available.\n- `.github/CONTRIBUTING.md` defines contribution expectations for this maintainer-led public repository.\n- `CODE_OF_CONDUCT.md` defines the professional behavior standard for repository collaboration.\n- `SECURITY.md` defines the private vulnerability reporting route and response expectations.\n- `SUPPORT.md` defines the no-SLA support boundary and release-cadence expectations for third-party use.\n- `TRADEMARKS.md` defines the branding and endorsement boundary for the FNLLA product names and marks.\n- `.github/SUPPORT.md` routes support, licensing and repository-governance questions.\n\nRecommended maintainer sequence:\n\n```bash\nnode .\\scripts\\publish-fnlla-web.mjs\nnode .\\scripts\\test-fnlla-web-browser.mjs\nnode .\\scripts\\validate-fnlla-web.mjs\n```\n\nUse the browser matrix when you want a broader local sweep:\n\n```bash\nnode .\\scripts\\test-fnlla-web-browser-matrix.mjs\n```\n\n## Runtime and docs boundary\n\nTreat these as public, supported outputs:\n\n- `assets/css/fnlla-web.css`\n- `assets/js/fnlla-web.js`\n- `assets/icons/`\n- `dist/fnlla-web/`\n\nTreat these as maintainer-only internals:\n\n- `src/`\n- `src/docs/js/`\n- `scripts/`\n- `docs/guides/*.md`\n- `docs/assets/docs.css`\n- `docs/assets/docs.js`\n- the docs shell around the runtime demos\n\nThe docs shell is documentation-specific, but component demos should still render from the same shared runtime shipped in `assets/css/fnlla-web.css` and `assets/js/fnlla-web.js`.\n\n## Included documentation\n\n- Docs: `docs/index.html`, `docs/contract.html`, `docs/layout.html`, `docs/components.html`, `docs/sections.html`, `docs/utilities.html`, `docs/guides.html`\n- Component classification guide: `docs/component-classification.html`\n- Team usage and maintenance guide: `docs/team-usage-and-maintenance.html`\n- Docs stylesheet: `docs/assets/docs.css` for documentation-only shell and presentation helpers around the shared runtime\n- Docs behavior bundle: `docs/assets/docs.js` for documentation-only navigation, theme-toggle, code-highlighting and icon-catalogue behavior\n- Brand assets: `docs/assets/brand/` for the committed FNLLA Web logo source and GitHub-ready preview exports\n- Guide sources: `docs/guides/*.md` for maintainer-authored content that publishes into the HTML guide set\n- Docs behavior sources: `src/docs/js/*.js` for maintainer-authored documentation-only JavaScript that publishes into `docs/assets/docs.js`\n- Runtime manifest: `scripts/fnlla-web-manifest.mjs` for the shared source-ordering and export contract\n- Validator: `scripts/validate-fnlla-web.mjs` for release-stage structural checks\n- Browser smoke test: `scripts/test-fnlla-web-browser.mjs` for published runtime behavior checks\n- Code of Conduct: `CODE_OF_CONDUCT.md` for collaboration and moderation standards\n- Contributing guide: `.github/CONTRIBUTING.md` for repository workflow and scope expectations\n- License: `LICENSE.md` for MIT usage terms\n- Support policy: `SUPPORT.md` for the public no-support and no-fixed-cadence boundary\n- Trademark notice: `TRADEMARKS.md` for branding and endorsement rules\n- Release template: `.github/RELEASE_TEMPLATE.md` for ASCII-safe GitHub release notes\n- Security policy: `SECURITY.md` for vulnerability reporting and disclosure handling\n- Support routing: `.github/SUPPORT.md` for issue, licensing and contact guidance\n\nUse the docs to review component behavior and copy the patterns you need into real project templates.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffnlla%2Fweb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffnlla%2Fweb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffnlla%2Fweb/lists"}