mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-08-28 23:01:37 +00:00
ENH - use Inter across phone UI
This commit is contained in:
@@ -26,6 +26,100 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
## Inter 4.1
|
||||||
|
|
||||||
|
Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION AND CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
|
||||||
|
DEALINGS IN THE FONT SOFTWARE.
|
||||||
|
|
||||||
## Framework7 documentation placeholder media
|
## Framework7 documentation placeholder media
|
||||||
|
|
||||||
The development-only Sky UI Kitchen Sink includes placeholder images mirrored
|
The development-only Sky UI Kitchen Sink includes placeholder images mirrored
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -211,9 +211,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
:root {
|
:root {
|
||||||
font-family:
|
font-family: var(--sky-font-family);
|
||||||
-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Helvetica Neue',
|
font-feature-settings:
|
||||||
sans-serif;
|
'liga' 1,
|
||||||
|
'calt' 1;
|
||||||
|
font-optical-sizing: auto;
|
||||||
font-synthesis: none;
|
font-synthesis: none;
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizeLegibility;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
@@ -234,7 +236,9 @@ body,
|
|||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
button,
|
button,
|
||||||
input {
|
input,
|
||||||
|
textarea,
|
||||||
|
select {
|
||||||
font: inherit;
|
font: inherit;
|
||||||
}
|
}
|
||||||
button {
|
button {
|
||||||
@@ -1632,8 +1636,7 @@ button {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #000;
|
background: #000;
|
||||||
color: #f5f5f7;
|
color: #f5f5f7;
|
||||||
font-family:
|
font-family: var(--sky-font-family);
|
||||||
-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', sans-serif;
|
|
||||||
}
|
}
|
||||||
.darkchat-page button,
|
.darkchat-page button,
|
||||||
.darkchat-page input,
|
.darkchat-page input,
|
||||||
@@ -7833,8 +7836,7 @@ button {
|
|||||||
min-height: var(--springboard-grid-row);
|
min-height: var(--springboard-grid-row);
|
||||||
}
|
}
|
||||||
.app-icon-button {
|
.app-icon-button {
|
||||||
font-family:
|
font-family: var(--sky-font-family);
|
||||||
-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', sans-serif;
|
|
||||||
touch-action: none;
|
touch-action: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
|
|||||||
@@ -331,8 +331,7 @@ function finishPageSwipe(event: PointerEvent): void {
|
|||||||
z-index: 70;
|
z-index: 70;
|
||||||
inset: 0;
|
inset: 0;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-family:
|
font-family: var(--sky-font-family);
|
||||||
-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', sans-serif;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.home-folder-backdrop {
|
.home-folder-backdrop {
|
||||||
|
|||||||
@@ -399,7 +399,7 @@ onBeforeUnmount(() => {
|
|||||||
rgb(30 38 42 / 35%),
|
rgb(30 38 42 / 35%),
|
||||||
rgb(0 0 0 / 84%) 72%
|
rgb(0 0 0 / 84%) 72%
|
||||||
);
|
);
|
||||||
font-family: 'Segoe UI', Arial, sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
pointer-events: auto;
|
pointer-events: auto;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ onBeforeUnmount(() => {
|
|||||||
z-index: 40;
|
z-index: 40;
|
||||||
display: flex;
|
display: flex;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
font-family: Inter, ui-sans-serif, system-ui, sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
}
|
}
|
||||||
|
|
||||||
.radio-hud[data-horizontal='left'] {
|
.radio-hud[data-horizontal='left'] {
|
||||||
|
|||||||
@@ -677,9 +677,7 @@ onBeforeUnmount(() => {
|
|||||||
backdrop-filter: blur(26px) saturate(125%);
|
backdrop-filter: blur(26px) saturate(125%);
|
||||||
-webkit-backdrop-filter: blur(26px) saturate(125%);
|
-webkit-backdrop-filter: blur(26px) saturate(125%);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-family:
|
font-family: var(--sky-font-family);
|
||||||
-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text',
|
|
||||||
'Segoe UI', sans-serif;
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
touch-action: none;
|
touch-action: none;
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
import { existsSync, readdirSync, readFileSync } from 'node:fs'
|
||||||
|
import { join } from 'node:path'
|
||||||
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
|
import { describe, expect, it } from 'vitest'
|
||||||
|
|
||||||
|
const sourceDirectory = fileURLToPath(new URL('..', import.meta.url))
|
||||||
|
const tokensSource = readFileSync(new URL('./tokens.css', import.meta.url), 'utf8')
|
||||||
|
const mainCssSource = readFileSync(
|
||||||
|
new URL('../assets/main.css', import.meta.url),
|
||||||
|
'utf8',
|
||||||
|
)
|
||||||
|
|
||||||
|
function styleSources(directory: string): Array<{
|
||||||
|
file: string
|
||||||
|
source: string
|
||||||
|
}> {
|
||||||
|
return readdirSync(directory, { withFileTypes: true }).flatMap((entry) => {
|
||||||
|
const path = join(directory, entry.name)
|
||||||
|
if (entry.isDirectory()) return styleSources(path)
|
||||||
|
if (!/\.(?:css|vue)$/.test(entry.name)) return []
|
||||||
|
return [{ file: path, source: readFileSync(path, 'utf8') }]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('Inter font contract', () => {
|
||||||
|
it('bundles normal and italic variable fonts for every supported weight', () => {
|
||||||
|
expect(
|
||||||
|
existsSync(new URL('../assets/fonts/InterVariable.woff2', import.meta.url)),
|
||||||
|
).toBe(true)
|
||||||
|
expect(
|
||||||
|
existsSync(
|
||||||
|
new URL('../assets/fonts/InterVariable-Italic.woff2', import.meta.url),
|
||||||
|
),
|
||||||
|
).toBe(true)
|
||||||
|
expect(tokensSource.match(/@font-face/g)).toHaveLength(2)
|
||||||
|
expect(tokensSource.match(/font-weight:\s*100 900;/g)).toHaveLength(2)
|
||||||
|
expect(tokensSource).toContain("--sky-font-family: 'Inter', Arial, sans-serif;")
|
||||||
|
})
|
||||||
|
|
||||||
|
it('applies the shared font to the document and native form controls', () => {
|
||||||
|
expect(mainCssSource).toMatch(
|
||||||
|
/:root\s*\{[\s\S]*?font-family:\s*var\(--sky-font-family\);/,
|
||||||
|
)
|
||||||
|
expect(mainCssSource).toMatch(
|
||||||
|
/button,\s*input,\s*textarea,\s*select\s*\{\s*font:\s*inherit;/,
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not bypass the shared token with a generic system UI stack', () => {
|
||||||
|
const genericSystemStack =
|
||||||
|
/font-family\s*:\s*(?:-apple-system|BlinkMacSystemFont|system-ui|ui-sans-serif|['"]Segoe UI['"])/
|
||||||
|
const violations = styleSources(sourceDirectory)
|
||||||
|
.filter(({ source }) => genericSystemStack.test(source))
|
||||||
|
.map(({ file }) => file.slice(sourceDirectory.length + 1))
|
||||||
|
|
||||||
|
expect(violations).toEqual([])
|
||||||
|
})
|
||||||
|
})
|
||||||
Vendored
+1
-2
@@ -525,8 +525,7 @@
|
|||||||
height: var(--sky-widget-label-height);
|
height: var(--sky-widget-label-height);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
color: var(--sky-widget-label-color, #fff);
|
color: var(--sky-widget-label-color, #fff);
|
||||||
font-family:
|
font-family: var(--sky-font-family);
|
||||||
-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', sans-serif;
|
|
||||||
font-size: 11.5px;
|
font-size: 11.5px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
letter-spacing: -0.15px;
|
letter-spacing: -0.15px;
|
||||||
|
|||||||
@@ -1,3 +1,19 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('../assets/fonts/InterVariable.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 100 900;
|
||||||
|
font-display: swap;
|
||||||
|
src: url('../assets/fonts/InterVariable-Italic.woff2') format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--sky-device-pixel-ratio: 1;
|
--sky-device-pixel-ratio: 1;
|
||||||
--sky-hairline-scale: 1;
|
--sky-hairline-scale: 1;
|
||||||
@@ -26,9 +42,7 @@
|
|||||||
--sky-font-title: 17px;
|
--sky-font-title: 17px;
|
||||||
--sky-font-medium-title: 24px;
|
--sky-font-medium-title: 24px;
|
||||||
--sky-font-large-title: 34px;
|
--sky-font-large-title: 34px;
|
||||||
--sky-font-family:
|
--sky-font-family: 'Inter', Arial, sans-serif;
|
||||||
-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF UI Text',
|
|
||||||
'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
||||||
--sky-transition-fast: 100ms;
|
--sky-transition-fast: 100ms;
|
||||||
--sky-transition-normal: 200ms;
|
--sky-transition-normal: 200ms;
|
||||||
--sky-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
|
--sky-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
|
||||||
|
|||||||
@@ -791,7 +791,7 @@ onBeforeUnmount(() => {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
color: #f6f7f9;
|
color: #f6f7f9;
|
||||||
background: #07090c;
|
background: #07090c;
|
||||||
font-family: Inter, system-ui, sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
}
|
}
|
||||||
.billing-app--light {
|
.billing-app--light {
|
||||||
--billing-border: rgb(15 23 42 / 10%);
|
--billing-border: rgb(15 23 42 / 10%);
|
||||||
|
|||||||
@@ -1156,13 +1156,7 @@ onMounted(async () => {
|
|||||||
padding: 47px 0 24px;
|
padding: 47px 0 24px;
|
||||||
background: var(--bg);
|
background: var(--bg);
|
||||||
color: var(--label);
|
color: var(--label);
|
||||||
font-family:
|
font-family: var(--sky-font-family);
|
||||||
Inter,
|
|
||||||
-apple-system,
|
|
||||||
BlinkMacSystemFont,
|
|
||||||
'SF Pro Display',
|
|
||||||
system-ui,
|
|
||||||
sans-serif;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.calendar--light {
|
.calendar--light {
|
||||||
|
|||||||
@@ -2195,7 +2195,7 @@ onMounted(async () => {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #151613;
|
background: #151613;
|
||||||
color: #f8f8f4;
|
color: #f8f8f4;
|
||||||
font-family: Inter, system-ui, sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
}
|
}
|
||||||
.citymarkt--light {
|
.citymarkt--light {
|
||||||
--ink: #fff;
|
--ink: #fff;
|
||||||
|
|||||||
@@ -3590,7 +3590,7 @@ onMounted(async () => {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #12171b !important;
|
background: #12171b !important;
|
||||||
color: #f7f8f4;
|
color: #f7f8f4;
|
||||||
font-family: Inter, system-ui, sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
}
|
}
|
||||||
.feather-app--active.feather-app--light {
|
.feather-app--active.feather-app--light {
|
||||||
--feather-panel: #f0f1ec;
|
--feather-panel: #f0f1ec;
|
||||||
|
|||||||
@@ -3375,7 +3375,7 @@ onBeforeUnmount(() => {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #000;
|
background: #000;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
}
|
}
|
||||||
.state,
|
.state,
|
||||||
.light-empty,
|
.light-empty,
|
||||||
|
|||||||
@@ -1526,7 +1526,7 @@ onMounted(async () => {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #12171b;
|
background: #12171b;
|
||||||
color: #f7f7f2;
|
color: #f7f7f2;
|
||||||
font-family: Inter, system-ui, sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
}
|
}
|
||||||
.pages--light {
|
.pages--light {
|
||||||
--yellow: #8a6500;
|
--yellow: #8a6500;
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ onBeforeUnmount(() => {
|
|||||||
background:
|
background:
|
||||||
radial-gradient(circle at 88% 8%, rgb(255 255 255 / 72%), transparent 28%),
|
radial-gradient(circle at 88% 8%, rgb(255 255 255 / 72%), transparent 28%),
|
||||||
linear-gradient(155deg, #f4efff 0%, #e7ddff 55%, #d9cdf7 100%);
|
linear-gradient(155deg, #f4efff 0%, #e7ddff 55%, #d9cdf7 100%);
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -419,7 +419,7 @@ onBeforeUnmount(() => {
|
|||||||
background:
|
background:
|
||||||
radial-gradient(circle at 88% 7%, rgb(108 231 218 / 32%), transparent 30%),
|
radial-gradient(circle at 88% 7%, rgb(108 231 218 / 32%), transparent 30%),
|
||||||
linear-gradient(155deg, #effcf7 0%, #cfeee5 52%, #abdcd7 100%);
|
linear-gradient(155deg, #effcf7 0%, #cfeee5 52%, #abdcd7 100%);
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
touch-action: manipulation;
|
touch-action: manipulation;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -376,7 +376,7 @@ onBeforeUnmount(() => {
|
|||||||
padding: 52px 14px 25px;
|
padding: 52px 14px 25px;
|
||||||
color: #f5fbff;
|
color: #f5fbff;
|
||||||
background: radial-gradient(circle at 50% 0, #253163, #090c22 58%, #050715);
|
background: radial-gradient(circle at 50% 0, #253163, #090c22 58%, #050715);
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
user-select: none;
|
user-select: none;
|
||||||
touch-action: manipulation;
|
touch-action: manipulation;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -334,7 +334,7 @@ onBeforeUnmount(() => window.removeEventListener('keydown', handleKeydown))
|
|||||||
background:
|
background:
|
||||||
radial-gradient(circle at 86% 8%, rgb(255 192 94 / 28%), transparent 29%),
|
radial-gradient(circle at 86% 8%, rgb(255 192 94 / 28%), transparent 29%),
|
||||||
linear-gradient(155deg, #fff3dc 0%, #f3d8b7 55%, #e8b98d 100%);
|
linear-gradient(155deg, #fff3dc 0%, #f3d8b7 55%, #e8b98d 100%);
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
touch-action: none;
|
touch-action: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ onBeforeUnmount(() => {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.flappy-app { --sky-a:#50d8f2;--sky-b:#765ce8;--tower:#574be8;--tower-light:#9b94ff;--tower-dark:#3429a6;--tower-glow:#79e7ff; position:absolute;inset:0;overflow:hidden;padding:52px 16px 27px;color:#fff;background:linear-gradient(160deg,#19375e,#433b80);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;user-select:none;touch-action:manipulation; }
|
.flappy-app { --sky-a:#50d8f2;--sky-b:#765ce8;--tower:#574be8;--tower-light:#9b94ff;--tower-dark:#3429a6;--tower-glow:#79e7ff; position:absolute;inset:0;overflow:hidden;padding:52px 16px 27px;color:#fff;background:linear-gradient(160deg,#19375e,#433b80);font-family:var(--sky-font-family);user-select:none;touch-action:manipulation; }
|
||||||
.flappy-app--playing { padding:0; }
|
.flappy-app--playing { padding:0; }
|
||||||
.flappy-app--neon { --sky-a:#151c58;--sky-b:#a329a2;--tower:#19dfe6;--tower-light:#82ffff;--tower-dark:#087f91;--tower-glow:#26fbff; }.flappy-app--storm { --sky-a:#6f8497;--sky-b:#2b3955;--tower:#df765f;--tower-light:#ffb18e;--tower-dark:#8d3e39;--tower-glow:#ff997d; }
|
.flappy-app--neon { --sky-a:#151c58;--sky-b:#a329a2;--tower:#19dfe6;--tower-light:#82ffff;--tower-dark:#087f91;--tower-glow:#26fbff; }.flappy-app--storm { --sky-a:#6f8497;--sky-b:#2b3955;--tower:#df765f;--tower-light:#ffb18e;--tower-dark:#8d3e39;--tower-glow:#ff997d; }
|
||||||
.flappy-header{height:55px;display:flex;align-items:center;justify-content:space-between}.flappy-header span{display:block;color:#d9e9fa;font-size:14px;font-weight:850;letter-spacing:1.1px;text-transform:uppercase}.flappy-header h1{margin:1px 0 0;font-size:32px;line-height:1}.flappy-header button,.flappy-toolbar button{width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid #ffffff35;border-radius:12px;color:#fff;background:#ffffff18}
|
.flappy-header{height:55px;display:flex;align-items:center;justify-content:space-between}.flappy-header span{display:block;color:#d9e9fa;font-size:14px;font-weight:850;letter-spacing:1.1px;text-transform:uppercase}.flappy-header h1{margin:1px 0 0;font-size:32px;line-height:1}.flappy-header button,.flappy-toolbar button{width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid #ffffff35;border-radius:12px;color:#fff;background:#ffffff18}
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ onBeforeUnmount(() => {
|
|||||||
background:
|
background:
|
||||||
radial-gradient(circle at 85% 8%, rgb(100 211 91 / 22%), transparent 30%),
|
radial-gradient(circle at 85% 8%, rgb(100 211 91 / 22%), transparent 30%),
|
||||||
linear-gradient(165deg, #142b25 0%, #0c1715 62%, #08100f 100%);
|
linear-gradient(165deg, #142b25 0%, #0c1715 62%, #08100f 100%);
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
font-family: var(--sky-font-family);
|
||||||
user-select: none;
|
user-select: none;
|
||||||
touch-action: none;
|
touch-action: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -314,7 +314,7 @@ onBeforeUnmount(() => {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.tower-app { position: absolute; inset: 0; overflow: hidden; padding: 52px 16px 27px; color: #eef5ff; background: radial-gradient(circle at 75% 8%, #7146c866, transparent 35%), linear-gradient(170deg, #161634, #242054 52%, #10132c); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; user-select: none; touch-action: manipulation; }
|
.tower-app { position: absolute; inset: 0; overflow: hidden; padding: 52px 16px 27px; color: #eef5ff; background: radial-gradient(circle at 75% 8%, #7146c866, transparent 35%), linear-gradient(170deg, #161634, #242054 52%, #10132c); font-family: var(--sky-font-family); user-select: none; touch-action: manipulation; }
|
||||||
.tower-app--playing { padding: 0; }
|
.tower-app--playing { padding: 0; }
|
||||||
.tower-header { height: 50px; display: flex; align-items: center; justify-content: space-between; }
|
.tower-header { height: 50px; display: flex; align-items: center; justify-content: space-between; }
|
||||||
.tower-header span { display: block; color: #c1b8f1; font-size: 10px; font-weight: 850; letter-spacing: 1.1px; text-transform: uppercase; }
|
.tower-header span { display: block; color: #c1b8f1; font-size: 10px; font-weight: 850; letter-spacing: 1.1px; text-transform: uppercase; }
|
||||||
|
|||||||
@@ -0,0 +1,91 @@
|
|||||||
|
Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION AND CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
|
||||||
|
DEALINGS IN THE FONT SOFTWARE.
|
||||||
Reference in New Issue
Block a user