Skip to content

hksm-app/api-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@hikasami/api-ui

npm version unpkg

Dark API Reference UI for OpenAPI 3.x — Layout with sidebar navigation, documentation panel and live Try It panel.

Features

  • Dark theme with customisable accent colour
  • 3-column layout: sidebar / docs / Try It
  • JWT Bearer token manager (saved to localStorage)
  • Resizable response panel (drag-to-resize, height persisted)
  • Syntax-highlighted JSON responses with Copy button
  • Live search across all endpoints
  • Zero dependencies — pure vanilla JS + CSS

Quick start

Via CDN (unpkg or jsDelivr)

<!-- unpkg -->
<link rel="stylesheet" href="https://unpkg.com/@hikasami/api-ui@2/dist/api-ui.min.css" />
<script src="https://unpkg.com/@hikasami/api-ui@2/dist/api-ui.min.js"></script>

<!-- or jsDelivr -->
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@hikasami/api-ui@2/dist/api-ui.min.css" /> -->
<!-- <script src="https://cdn.jsdelivr.net/npm/@hikasami/api-ui@2/dist/api-ui.min.js"></script> -->

<div id="hau-root"></div>
<script>
  HikasamiApiUI.init({
    specUrl:     '/openapi.json',
    appName:     'My API',
    accentColor: '#0B8AFC',
  });
</script>

Local (copy dist/ folder)

<link rel="stylesheet" href="dist/api-ui.min.css" />
<script src="dist/api-ui.min.js"></script>

<div id="hau-root"></div>
<script>
  HikasamiApiUI.init({ specUrl: '/openapi.json' });
</script>

Configuration

Option Type Default Description
specUrl string '/openapi.json' URL to your OpenAPI 3.x JSON spec
appName string 'API Reference' Name shown in the header
logoSvg string built-in layers icon Inline SVG for the logo icon
logoImgUrl string null URL to a logo image (overrides logoSvg)
faviconUrl string null URL to a custom favicon (default: dist/favicon.ico auto-detected)
accentColor string '#0B8AFC' CSS colour for buttons, active states, etc.
tokenKey string 'hau_jwt' localStorage key used to persist JWT token
mountId string 'hau-root' ID of the DOM element to mount into

Theming

Override any CSS custom property before loading the stylesheet:

:root {
  --hau-accent:  #7c3aed;   /* purple accent */
  --hau-bg:      #090909;   /* main background */
  --hau-sb:      300px;     /* sidebar width */
}

File structure

├── dist/
│   ├── api-ui.css      ← styles (source)
│   ├── api-ui.min.css  ← minified styles
│   ├── api-ui.js       ← runtime (source)
│   ├── api-ui.min.js   ← minified runtime
│   └── favicon.ico     ← default favicon
├── scripts/
│   └── build.js        ← minify script
├── index.html          ← demo / usage example
├── package.json
└── README.md

Fonts

The UI uses Inter and JetBrains Mono from Google Fonts.
Add the following to your <head> (or self-host):

<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />

License

Apache-2.0

About

Dark API reference UI for OpenAPI 3.x specs. Layout with Try It panel, JWT auth, resizable response pane.

Resources

License

Stars

Watchers

Forks

Contributors