From 9d82c3f60ba91da77f7c062c68800db668b25222 Mon Sep 17 00:00:00 2001 From: marclave Date: Fri, 22 Dec 2023 11:29:30 -0800 Subject: [PATCH] fix: update theme, docs and add scalar config --- README.md | 7 ++ bun.lockb | Bin 50566 -> 156168 bytes package.json | 3 +- src/index.ts | 12 ++- src/scalar-elysia-theme.ts | 171 +++++++++++++++++++++++-------------- src/scalar.ts | 7 +- src/types.ts | 9 +- 7 files changed, 138 insertions(+), 71 deletions(-) diff --git a/README.md b/README.md index 2b2ac94..6d8bf1b 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,13 @@ Then go to `http://localhost:8080/swagger`. # config +## provider +@default 'scalar' +Choose between [Scalar](https://swagger.io/specification/v2/) & [SwaggerUI](https://github.com/swagger-api/swagger-ui) + +## scalar +Customize scalarConfig, refers to [Scalar config](https://github.com/scalar/scalar) + ## swagger Customize Swagger config, refers to [Swagger 2.0 config](https://swagger.io/specification/v2/) diff --git a/bun.lockb b/bun.lockb index 831b74fc0c214f431d02bfcaa7b46474e867fdd9..24ab1cf1e7aa51f6236bc39e6ee12d5d49143bea 100755 GIT binary patch literal 156168 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Ðq8#>PGpV6w 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 = { provider: 'scalar', scalarVersion: '1.12.5', + scalarConfig: {}, documentation: {}, version: '5.9.0', excludeStaticFile: true, @@ -71,8 +74,15 @@ export const swagger = } ) + const scalarConfiguration: ReferenceConfiguration = { + spec: { + url: `${relativePath}/json` + }, + ...scalarConfig + } - return new Response(provider === 'swagger-ui' ? SwaggerUIRender(info, version, theme, stringifiedSwaggerOptions, autoDarkMode) : ScalarRender(`${relativePath}/json`, scalarVersion), + + return new Response(provider === 'swagger-ui' ? SwaggerUIRender(info, version, theme, stringifiedSwaggerOptions, autoDarkMode) : ScalarRender(scalarVersion, scalarConfiguration), { headers: { 'content-type': 'text/html; charset=utf8' diff --git a/src/scalar-elysia-theme.ts b/src/scalar-elysia-theme.ts index f7f5105..7cb59d1 100644 --- a/src/scalar-elysia-theme.ts +++ b/src/scalar-elysia-theme.ts @@ -1,6 +1,4 @@ -export default `:root { - --theme-font: "Inter", var(--system-fonts); -} +export default ` /* basic theme */ .light-mode { --theme-color-1: #2a2f45; @@ -43,6 +41,20 @@ export default `:root { --sidebar-search-border-color: var(--theme-border-color); --sidebar-search--color: var(--theme-color-3); } +/* Document header only shows on mobile*/ +.dark-mode .t-doc__header, +.light-mode .t-doc__header { + --header-background-1: rgba(255, 255, 255, 0.85); + --header-border-color: transparent; + --header-color-1: var(--theme-color-1); + --header-color-2: var(--theme-color-2); + --header-background-toggle: var(--theme-color-3); + --header-call-to-action-color: var(--theme-color-accent); +} + +.dark-mode .t-doc__header { + --header-background-1: rgba(17, 23, 40, 0.75); +} /* advanced */ .light-mode { @@ -75,61 +87,7 @@ export default `:root { --theme-scrollbar-color: rgba(255, 255, 255, 0.24); --theme-scrollbar-color-active: rgba(255, 255, 255, 0.48); } -.section-container:first-of-type:after, -.section-container:first-of-type:before { - --stripes: repeating-linear-gradient( - 100deg, - #fff 0%, - #fff 0%, - transparent 2%, - transparent 12%, - #fff 17% - ); - --stripesDark: repeating-linear-gradient( - 100deg, - #000 0%, - #000 0%, - transparent 10%, - transparent 12%, - #000 17% - ); - --rainbow: repeating-linear-gradient( - 100deg, - #60a5fa 10%, - #e879f9 16%, - #5eead4 22%, - #60a5fa 30% - ); - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - height: 200px; - background-image: var(--stripesDark), var(--rainbow); - background-size: 200%, 100%; - background-attachment: fixed; - mix-blend-mode: difference; - filter: opacity(10%) saturate(200%); - -webkit-mask-image: radial-gradient( - ellipse at 100% 0%, - black 40%, - transparent 75% - ); - mask-image: radial-gradient(ellipse at 100% 0%, black 40%, transparent 75%); - z-index: 0; - pointer-events: none; -} -.section-container:first-of-type:after { - mix-blend-mode: unset; -} -.light-mode .section-container:first-of-type:after, -.light-mode .section-container:first-of-type:before { - background-image: var(--stripes), var(--rainbow); - filter: opacity(4%) saturate(200%); - mix-blend-mode: unset; -} +/* Elysia Specific */ .scalar-api-client__send-request-button, .show-api-client-button { background: #3c82f6 !important; @@ -137,13 +95,7 @@ export default `:root { .show-api-client-button:before { display: none; } -.section-container .section:first-of-type { - border-bottom: 1px solid - var(--theme-border-color, var(--default-theme-border-color)); -} -.section-container[data-v-fcff76dc]:not(:first-of-type) { - border-top: none; -} + .sidebar-search:hover { transition: all 0.15s ease-in-out; --sidebar-search-border-color: var(--theme-color-accent) !important; @@ -152,4 +104,93 @@ export default `:root { .scalar-api-client__container .sidebar { --sidebar-border-color: var(--theme-border-color); } +@media (min-width: 1150px) { + .section-container:has( ~ .footer):before, + .tag-section-container:before { + content: ""; + position: absolute; + top: -5px; + left: 0; + width: 100%; + height: 10px; + background: linear-gradient(90deg, var(--theme-background-1) 3%,transparent 10%); + } +} +.section-flare { + position: absolute; + width: 100vw; + height: 300px; + --stripes: repeating-linear-gradient( + 100deg, + #fff 0%, + #fff 7%, + transparent 10%, + transparent 12%, + #fff 16% + ); + --stripesDark: repeating-linear-gradient( + 100deg, + #000 0%, + #000 7%, + transparent 10%, + transparent 12%, + #000 16% + ); + --rainbow: repeating-linear-gradient( + 100deg, + #60a5fa 10%, + #e879f9 16%, + #5eead4 22%, + #60a5fa 30% + ); + background-image: var(--stripes), var(--rainbow); + background-size: 300%, 200%; + background-position: 50% 50%, 50% 50%; + filter: invert(100%); + -webkit-mask-image: radial-gradient( + ellipse at 100% 0%, + black 40%, + transparent 70% + ); + mask-image: radial-gradient(ellipse at 100% 0%, black 40%, transparent 70%); + pointer-events: none; + opacity: 0.15; +} +.dark-mode .section-flare { + background-image: var(--stripesDark), var(--rainbow); + filter: opacity(50%) saturate(200%); + opacity: 0.25; +} +.section-flare:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-image: var(--stripes), var(--rainbow); + background-size: 200%, 100%; + background-attachment: fixed; + mix-blend-mode: difference; +} +.dark-mode .section-flare:after { + background-image: var(--stripesDark), var(--rainbow); +} +@keyframes headerbackground { + from { + background: transparent; + backdrop-filter: none; + } + to { + background: var(--header-background-1); + backdrop-filter: blur(12px); + } +} +.light-mode .t-doc__header, +.dark-mode .t-doc__header { + animation: headerbackground forwards; + animation-timeline: scroll(); + animation-range: 0px 200px; + --header-border-color: transparent; +} ` \ No newline at end of file diff --git a/src/scalar.ts b/src/scalar.ts index e3f26de..ef70de8 100644 --- a/src/scalar.ts +++ b/src/scalar.ts @@ -1,6 +1,7 @@ +import type { ReferenceConfiguration } from '@scalar/api-reference' import scalarElysiaTheme from './scalar-elysia-theme' -export const ScalarRender = (specUrl: string, version: string, customCss?: string) => ` +export const ScalarRender = (version: string, config: ReferenceConfiguration) => ` API Reference @@ -14,13 +15,13 @@ export const ScalarRender = (specUrl: string, version: string, customCss?: strin } + data-url="${config.spec?.url}"> ` \ No newline at end of file diff --git a/src/types.ts b/src/types.ts index 1ea054c..9ca1876 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,6 +1,6 @@ import type { OpenAPIV3 } from 'openapi-types' import type { SwaggerUIOptions } from 'swagger-ui' - +import type { ReferenceConfiguration } from '@scalar/api-reference' export type SwaggerInfo = { title: string @@ -34,6 +34,13 @@ export interface ElysiaSwaggerConfig { * @see https://github.com/scalar/scalar */ scalarVersion?: string + /** + * Scalar configuration to customize scalar + * + * @default '1.12.5' + * @see https://github.com/scalar/scalar + */ + scalarConfig?: ReferenceConfiguration /** * Version to use for swagger cdn bundle *