Merge pull request #1564 from Budibase/ak-fixes

Proper font support and multiple fixes
This commit is contained in:
Andrew Kingston 2021-05-26 13:18:40 +01:00 committed by GitHub
commit 4a38fa3b71
75 changed files with 129 additions and 610 deletions

View File

@ -11,6 +11,7 @@
export let icon = "" export let icon = ""
export let dataCy = null export let dataCy = null
export let size = "M" export let size = "M"
export let active = false
function longPress(element) { function longPress(element) {
if (!longPressable) return if (!longPressable) return
@ -40,6 +41,7 @@
class:spectrum-ActionButton--emphasized={emphasized} class:spectrum-ActionButton--emphasized={emphasized}
class:is-selected={selected} class:is-selected={selected}
class="spectrum-ActionButton spectrum-ActionButton--size{size}" class="spectrum-ActionButton spectrum-ActionButton--size{size}"
class:active
{disabled} {disabled}
on:longPress on:longPress
on:click|preventDefault on:click|preventDefault
@ -67,3 +69,10 @@
<span class="spectrum-ActionButton-label"><slot /></span> <span class="spectrum-ActionButton-label"><slot /></span>
{/if} {/if}
</button> </button>
<style>
.active,
.active svg {
color: var(--spectrum-global-color-blue-600);
}
</style>

View File

@ -39,7 +39,7 @@
color: white; color: white;
display: grid; display: grid;
place-items: center; place-items: center;
font-weight: 500; font-weight: 600;
background: #3aab87; background: #3aab87;
border-radius: 50%; border-radius: 50%;
overflow: hidden; overflow: hidden;

View File

@ -50,7 +50,7 @@
.name { .name {
text-align: left; text-align: left;
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 600;
letter-spacing: 0.14px; letter-spacing: 0.14px;
color: var(--ink); color: var(--ink);
flex: 1 1 auto; flex: 1 1 auto;

View File

@ -285,9 +285,6 @@
--spectrum-global-dimension-font-size-400 --spectrum-global-dimension-font-size-400
); );
} }
.container * {
font-family: "Inter", sans-serif !important;
}
.gallery, .gallery,
.spectrum-Dropzone { .spectrum-Dropzone {
@ -346,7 +343,7 @@
.extension { .extension {
color: var(--spectrum-global-color-gray-600); color: var(--spectrum-global-color-gray-600);
text-transform: uppercase; text-transform: uppercase;
font-weight: 500; font-weight: 600;
margin-bottom: 5px; margin-bottom: 5px;
} }

View File

@ -95,7 +95,7 @@
overflow: visible; overflow: visible;
} }
.spectrum-Dialog-heading { .spectrum-Dialog-heading {
font-family: var(--spectrum-alias-body-text-font-family); font-family: var(--font-sans);
} }
.spectrum-Dialog-buttonGroup { .spectrum-Dialog-buttonGroup {

View File

@ -49,7 +49,7 @@
border: 1px solid var(--spectrum-global-color-gray-300); border: 1px solid var(--spectrum-global-color-gray-300);
border-radius: 2px; border-radius: 2px;
text-transform: uppercase; text-transform: uppercase;
font-weight: 500; font-weight: 600;
font-size: 11px; font-size: 11px;
} }
</style> </style>

View File

@ -40,11 +40,6 @@
--rounded-medium: 8px; --rounded-medium: 8px;
--rounded-large: 16px; --rounded-large: 16px;
--font-normal: "Inter";
--font-black: "Inter Black";
--font-bold: "Inter Bold";
--font-medium: "Inter Medium";
--font-light: "Inter Light";
--font-sans: Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, "Inter", --font-sans: Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, "Inter",
"Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

View File

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 128 128" style="enable-background:new 0 0 128 128;" xml:space="preserve">
<style type="text/css">
.st0{fill:#393C44;}
.st1{fill:#FFFFFF;}
</style>
<g>
<path class="st0" d="M117.33,128H10.67C4.78,128,0,123.22,0,117.33V10.67C0,4.78,4.78,0,10.67,0h106.67
C123.22,0,128,4.78,128,10.67v106.67C128,123.22,123.22,128,117.33,128z"/>
<g>
<path class="st1" d="M75.94,32v27.84c3.14-3.38,7.07-5.07,11.79-5.07c2.8,0,5.37,0.54,7.7,1.63c2.33,1.09,4.32,2.55,5.97,4.39
c1.65,1.84,2.93,4.01,3.87,6.51c0.93,2.5,1.4,5.16,1.4,7.98c0,2.87-0.48,5.57-1.44,8.09c-0.96,2.52-2.3,4.72-4.02,6.58
c-1.72,1.87-3.75,3.34-6.08,4.43C92.8,95.46,90.28,96,87.58,96c-4.91,0-8.79-1.84-11.64-5.52v4.31H62.6V32H75.94z M92.74,75.5
c0-1.21-0.22-2.36-0.66-3.44c-0.44-1.08-1.06-2.03-1.84-2.84c-0.79-0.81-1.7-1.45-2.73-1.93c-1.03-0.48-2.16-0.72-3.39-0.72
c-1.18,0-2.28,0.23-3.32,0.68c-1.03,0.45-1.93,1.09-2.69,1.89c-0.76,0.81-1.38,1.75-1.84,2.84c-0.47,1.09-0.7,2.23-0.7,3.44
s0.22,2.34,0.66,3.4c0.44,1.06,1.06,1.98,1.84,2.76c0.79,0.78,1.71,1.41,2.76,1.89c1.06,0.48,2.17,0.72,3.35,0.72
c1.18,0,2.28-0.23,3.32-0.68c1.03-0.45,1.93-1.08,2.69-1.89c0.76-0.81,1.37-1.74,1.84-2.8C92.51,77.77,92.74,76.66,92.74,75.5z"/>
</g>
<g>
<path class="st1" d="M34.67,32v27.84c3.14-3.38,7.07-5.07,11.79-5.07c2.8,0,5.37,0.54,7.7,1.63c2.33,1.09,4.32,2.55,5.97,4.39
c1.65,1.84,2.93,4.01,3.87,6.51c0.93,2.5,1.4,5.16,1.4,7.98c0,2.87-0.48,5.57-1.44,8.09c-0.96,2.52-2.3,4.72-4.02,6.58
c-1.72,1.87-3.75,3.34-6.08,4.43C51.53,95.46,49.01,96,46.31,96c-4.91,0-8.79-1.84-11.64-5.52v4.31H21.33V32H34.67z M51.47,75.5
c0-1.21-0.22-2.36-0.66-3.44c-0.44-1.08-1.06-2.03-1.84-2.84c-0.79-0.81-1.7-1.45-2.73-1.93c-1.03-0.48-2.16-0.72-3.39-0.72
c-1.18,0-2.28,0.23-3.32,0.68c-1.03,0.45-1.93,1.09-2.69,1.89c-0.76,0.81-1.38,1.75-1.84,2.84c-0.47,1.09-0.7,2.23-0.7,3.44
s0.22,2.34,0.66,3.4c0.44,1.06,1.06,1.98,1.84,2.76c0.79,0.78,1.71,1.41,2.76,1.89c1.06,0.48,2.17,0.72,3.35,0.72
c1.18,0,2.28-0.23,3.32-0.68c1.03-0.45,1.93-1.08,2.69-1.89c0.76-0.81,1.37-1.74,1.84-2.8C51.24,77.77,51.47,76.66,51.47,75.5z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 115 40" style="enable-background:new 0 0 115 40;" xml:space="preserve">
<style type="text/css">
.st0{fill:#393C44;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M111.16,40H3.91c-2.15,0-3.89-1.74-3.89-3.89V4.04c0-2.15,1.74-3.89,3.89-3.89h107.25
c2.15,0,3.89,1.74,3.89,3.89v32.07C115.05,38.26,113.31,40,111.16,40z"/>
<path class="st1" d="M10.37,10.03v8.57c0.93-1.26,2.33-1.67,3.61-1.67c1.58,0,3.01,0.59,4.02,1.54c1.12,1.05,1.82,2.62,1.82,4.53
c0,1.78-0.62,3.42-1.82,4.61c-1.01,1.03-2.26,1.57-3.97,1.57c-2.05,0-3.09-0.95-3.66-1.78v1.39H6.63V10.03H10.37z M10.97,20.98
c-0.44,0.46-0.82,1.13-0.82,2.11c0,0.95,0.41,1.64,0.85,2.05c0.59,0.57,1.41,0.85,2.11,0.85c0.64,0,1.36-0.26,1.93-0.8
c0.54-0.51,0.9-1.26,0.9-2.11c0-0.92-0.36-1.67-0.9-2.18c-0.59-0.57-1.23-0.77-1.98-0.77C12.26,20.14,11.56,20.37,10.97,20.98z"/>
<path class="st1" d="M25.08,17.35v6.32c0,0.51,0.05,1.31,0.64,1.85c0.26,0.23,0.72,0.54,1.54,0.54c0.69,0,1.23-0.23,1.56-0.54
c0.54-0.51,0.62-1.28,0.62-1.85v-6.32h3.74v6.68c0,1.31-0.13,2.54-1.28,3.67c-1.31,1.28-3.23,1.49-4.59,1.49
c-1.41,0-3.31-0.21-4.62-1.49c-1.05-1.03-1.26-2.18-1.26-3.44v-6.91H25.08z"/>
<path class="st1" d="M47.88,28.79h-3.74V27.4c-0.57,0.82-1.61,1.78-3.66,1.78c-1.71,0-2.96-0.54-3.97-1.57
c-1.19-1.18-1.82-2.83-1.82-4.61c0-1.9,0.7-3.47,1.82-4.53c1.01-0.95,2.44-1.54,4.02-1.54c1.27,0,2.67,0.41,3.61,1.67v-8.57h3.74
V28.79z M39.53,20.91c-0.54,0.51-0.9,1.26-0.9,2.18c0,0.85,0.36,1.59,0.9,2.11c0.57,0.54,1.28,0.8,1.93,0.8
c0.69,0,1.52-0.28,2.11-0.85c0.44-0.41,0.85-1.1,0.85-2.05c0-0.98-0.39-1.64-0.82-2.11c-0.59-0.62-1.28-0.85-2.08-0.85
C40.77,20.14,40.12,20.34,39.53,20.91z"/>
<path class="st1" d="M52.32,10.3c1.21,0,2.16,0.95,2.16,2.16c0,1.21-0.95,2.16-2.16,2.16c-1.21,0-2.16-0.95-2.16-2.16
C50.17,11.25,51.12,10.3,52.32,10.3z M54.19,17.35v11.44h-3.74V17.35H54.19z"/>
<path class="st1" d="M60.49,10.03v8.57c0.93-1.26,2.33-1.67,3.61-1.67c1.58,0,3.01,0.59,4.02,1.54c1.12,1.05,1.82,2.62,1.82,4.53
c0,1.78-0.62,3.42-1.82,4.61c-1.01,1.03-2.26,1.57-3.97,1.57c-2.05,0-3.09-0.95-3.66-1.78v1.39h-3.74V10.03H60.49z M61.06,20.98
c-0.44,0.46-0.82,1.13-0.82,2.11c0,0.95,0.41,1.64,0.85,2.05c0.59,0.57,1.41,0.85,2.11,0.85c0.64,0,1.36-0.26,1.93-0.8
c0.54-0.51,0.9-1.26,0.9-2.11c0-0.92-0.36-1.67-0.9-2.18c-0.59-0.57-1.23-0.77-1.98-0.77C62.34,20.14,61.65,20.37,61.06,20.98z"/>
<path class="st1" d="M80.26,17.35H84v11.44h-3.74v-1.39c-1.01,1.54-2.46,1.77-3.42,1.77c-1.66,0-3.06-0.41-4.33-1.74
c-1.22-1.28-1.69-2.77-1.69-4.28c0-1.92,0.73-3.57,1.79-4.62c1.01-1,2.41-1.56,4.02-1.56c0.99,0,2.57,0.23,3.63,1.67V17.35z
M75.57,20.96c-0.39,0.39-0.85,1.05-0.85,2.08c0,1.03,0.44,1.7,0.77,2.05c0.51,0.54,1.31,0.9,2.18,0.9c0.74,0,1.44-0.31,1.93-0.8
c0.49-0.46,0.9-1.18,0.9-2.16c0-0.82-0.31-1.59-0.85-2.11c-0.57-0.54-1.39-0.8-2.05-0.8C76.8,20.14,76.06,20.47,75.57,20.96z"/>
<path class="st1" d="M93.21,20.26c-0.57-0.33-1.31-0.64-2.03-0.64c-0.39,0-0.82,0.1-1.05,0.33c-0.13,0.13-0.23,0.33-0.23,0.51
c0,0.26,0.18,0.41,0.36,0.51c0.26,0.15,0.64,0.23,1.1,0.39l0.98,0.31c0.64,0.21,1.31,0.46,1.9,1c0.67,0.62,0.9,1.31,0.9,2.18
c0,1.52-0.67,2.49-1.18,3.01c-1.13,1.13-2.52,1.31-3.72,1.31c-1.54,0-3.21-0.33-4.7-1.64l1.57-2.49c0.36,0.31,0.87,0.67,1.26,0.85
c0.51,0.26,1.05,0.36,1.54,0.36c0.23,0,0.82,0,1.16-0.26c0.23-0.18,0.39-0.46,0.39-0.74c0-0.21-0.08-0.46-0.41-0.67
c-0.26-0.15-0.59-0.26-1.13-0.41l-0.92-0.28c-0.67-0.21-1.36-0.57-1.85-1.05c-0.54-0.57-0.82-1.21-0.82-2.08
c0-1.1,0.44-2.03,1.1-2.65c1.03-0.95,2.41-1.16,3.47-1.16c1.7,0,2.88,0.44,3.8,0.98L93.21,20.26z"/>
<path class="st1" d="M108.43,23.73h-8.55c0,0.62,0.23,1.44,0.69,1.95c0.57,0.62,1.34,0.72,1.9,0.72c0.54,0,1.1-0.1,1.49-0.33
c0.05-0.03,0.49-0.31,0.8-0.95l3.49,0.36c-0.51,1.62-1.54,2.47-2.21,2.88c-1.1,0.67-2.34,0.85-3.62,0.85
c-1.72,0-3.24-0.31-4.57-1.64c-1-1-1.72-2.52-1.72-4.42c0-1.64,0.59-3.34,1.75-4.52c1.39-1.39,3.11-1.64,4.39-1.64
c1.28,0,3.13,0.23,4.55,1.72c1.36,1.44,1.62,3.24,1.62,4.65V23.73z M105.03,21.48c-0.03-0.1-0.21-0.82-0.74-1.34
c-0.41-0.39-1-0.64-1.75-0.64c-0.95,0-1.52,0.39-1.87,0.74c-0.28,0.31-0.54,0.72-0.64,1.23H105.03z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 MiB

View File

@ -4,7 +4,12 @@
<meta charset='utf8'> <meta charset='utf8'>
<meta name='viewport' content='width=device-width'> <meta name='viewport' content='width=device-width'>
<title>Budibase</title> <title>Budibase</title>
<link rel='icon' href='./src/favicon.ico'> <link rel='icon' href='/src/favicon.ico'>
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link
href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
rel="stylesheet"
/>
</head> </head>
<body id="app"> <body id="app">
<script type="module" src='/src/main.js'></script> <script type="module" src='/src/main.js'></script>

View File

@ -1,157 +0,0 @@
/* Budibase Component Styles */
.budibase__title {
font-weight: 900;
font-size: 42px;
}
.budibase__title--2 {
font-weight: 700;
font-size: 32px;
}
.budibase__title--3 {
font-weight: 700;
font-size: 24px;
}
.budibase__title--4 {
font-weight: 700;
font-size: 18px;
}
.budibase__label--big {
font-weight: 400;
font-size: 14px;
opacity: 0.6;
text-transform: uppercase;
}
.budibase__label--medium {
font-weight: 500;
font-size: 13px;
opacity: 0.6;
text-transform: uppercase;
}
.budibase__label--small {
font-weight: 500;
font-size: 10px;
opacity: 0.6;
text-transform: uppercase;
}
.budibase__sub-heading {
font-weight: 500;
font-size: 16px;
opacity: 0.6;
}
.budibase__nav-item {
cursor: pointer;
padding: 0 4px 0 2px;
height: 36px;
margin: 0px 0px 0px 0px;
border-radius: 5px;
display: flex;
align-items: center;
font-size: 14px;
transition: 0.2s;
border-top: var(--grey-1) .5px solid;
}
.budibase__nav-item.selected {
color: var(--ink);
background: var(--grey-2);
}
.budibase__nav-item:hover {
background: var(--grey-1);
}
.budibase__input {
height: 36px;
background-color: var(--grey-2);
border: none;
border-radius: 5px;
width: 100%;
text-align: left;
color: var(--ink);
font-size: 14px;
padding-left: 8px;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.budibase__table {
border: 1px solid var(--grey-4);
background: #fff;
border-radius: 2px;
}
.budibase__table thead {
background: var(--blue-light);
}
.budibase__table thead > tr > th {
color: var(--ink);
text-transform: capitalize;
font-weight: 500;
}
.budibase__table tr {
border-bottom: 1px solid var(--grey-1);
}
.button--toggled {
background: var(--blue-light);
color: var(--grey-7);
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
}
/* Table styles */
.bb-table {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
margin-bottom: var(--spacing-xl);
}
* + .bb-table {
margin-top: var(--spacing-xl)
}
.bb-table th {
padding: var(--spacing-l) var(--spacing-m);
text-align: left;
vertical-align: bottom;
}
.bb-table td {
padding: var(--spacing-l) var(--spacing-m);
vertical-align: top;
}
.bb-table td > :last-child { margin-bottom: 0; }
.bb__alert {
position: relative;
margin-bottom: var(--spacing-m);
padding: var(--spacing-l);
}
.bb__alert--danger {
background: #fef4f6;
color: #f0506e;
}
a {
text-decoration: none;
}

View File

@ -32,8 +32,7 @@ function generateTitleContainer(table, title, formId, repeaterId) {
"border-width": "0", "border-width": "0",
"border-style": "None", "border-style": "None",
color: "#fff", color: "#fff",
"font-family": "Inter", "font-weight": "600",
"font-weight": "500",
"font-size": "14px", "font-size": "14px",
}) })
@ -43,8 +42,7 @@ function generateTitleContainer(table, title, formId, repeaterId) {
"border-width": "0", "border-width": "0",
"border-style": "None", "border-style": "None",
color: "#9e9e9e", color: "#9e9e9e",
"font-family": "Inter", "font-weight": "600",
"font-weight": "500",
"font-size": "14px", "font-size": "14px",
"margin-right": "8px", "margin-right": "8px",
"margin-left": "16px", "margin-left": "16px",

View File

@ -24,8 +24,7 @@ function generateTitleContainer(table) {
"border-width": "0", "border-width": "0",
"border-style": "None", "border-style": "None",
color: "#fff", color: "#fff",
"font-family": "Inter", "font-weight": "600",
"font-weight": "500",
"font-size": "14px", "font-size": "14px",
}) })
.hoverStyle({ .hoverStyle({
@ -52,7 +51,7 @@ function generateTitleContainer(table) {
flex: "1 1 auto", flex: "1 1 auto",
"text-transform": "capitalize", "text-transform": "capitalize",
}) })
.type("h3") .type("h2")
.instanceName("Title") .instanceName("Title")
.text(table.name) .text(table.name)
@ -111,8 +110,7 @@ const createScreen = table => {
.instanceName("View Button") .instanceName("View Button")
.normalStyle({ .normalStyle({
background: "transparent", background: "transparent",
"font-family": "Inter, sans-serif", "font-weight": "600",
"font-weight": "500",
color: "#888", color: "#888",
"border-width": "0", "border-width": "0",
}) })

View File

@ -97,8 +97,7 @@ export function makeSaveButton(table, formId) {
"border-width": "0", "border-width": "0",
"border-style": "None", "border-style": "None",
color: "#fff", color: "#fff",
"font-family": "Inter", "font-weight": "600",
"font-weight": "500",
"font-size": "14px", "font-size": "14px",
"margin-left": "16px", "margin-left": "16px",
}) })
@ -145,7 +144,7 @@ export function makeTitleContainer(title) {
flex: "1 1 auto", flex: "1 1 auto",
}) })
.customStyle(spectrumColor(900)) .customStyle(spectrumColor(900))
.type("h3") .type("h2")
.instanceName("Title") .instanceName("Title")
.text(title) .text(title)

View File

@ -67,7 +67,7 @@
header { header {
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 600;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: flex-start; justify-content: flex-start;

View File

@ -130,7 +130,7 @@
} }
.block-label { .block-label {
font-weight: 500; font-weight: 600;
font-size: var(--font-size-s); font-size: var(--font-size-s);
color: var(--grey-7); color: var(--grey-7);
} }

View File

@ -16,12 +16,13 @@
</script> </script>
<div class="block-field"> <div class="block-field">
<Select bind:value={value.queryId} extraThin secondary> <Select
<option value="">Choose an option</option> label="Query"
{#each $queries.list as query} bind:value={value.queryId}
<option value={query._id}>{query.name}</option> options={$queries.list}
{/each} getOptionValue={query => query._id}
</Select> getOptionLabel={query => query.name}
/>
</div> </div>
{#if parameters.length} {#if parameters.length}

View File

@ -99,7 +99,7 @@
.block-label { .block-label {
font-size: var(--spectrum-global-dimension-font-size-75); font-size: var(--spectrum-global-dimension-font-size-75);
font-weight: 500; font-weight: 600;
color: var(--grey-7); color: var(--grey-7);
} }
</style> </style>

View File

@ -88,7 +88,7 @@
text-align: justify; text-align: justify;
} }
.finished-text { .finished-text {
font-weight: 500; font-weight: 600;
text-align: center; text-align: center;
color: var(--blue); color: var(--blue);
} }

View File

@ -143,7 +143,7 @@
} }
.table-title h1 { .table-title h1 {
font-size: var(--font-size-m); font-size: var(--font-size-m);
font-weight: 500; font-weight: 600;
margin: 0; margin: 0;
} }
.table-title > div { .table-title > div {
@ -158,7 +158,7 @@
gap: var(--spacing-s); gap: var(--spacing-s);
} }
.popovers :global(button) { .popovers :global(button) {
font-weight: 500; font-weight: 600;
margin-top: var(--spacing-l); margin-top: var(--spacing-l);
} }
.popovers :global(button svg) { .popovers :global(button svg) {

View File

@ -7,7 +7,7 @@
<div> <div>
<Button icon="UsersLock" primary size="S" quiet on:click={modal.show}> <Button icon="UsersLock" primary size="S" quiet on:click={modal.show}>
Edit Roles Edit roles
</Button> </Button>
</div> </div>
<Modal bind:this={modal}> <Modal bind:this={modal}>

View File

@ -15,7 +15,7 @@
active={!!view.groupBy} active={!!view.groupBy}
on:click={modal.show} on:click={modal.show}
> >
Group By Group by
</Button> </Button>
<Modal bind:this={modal}> <Modal bind:this={modal}>
<GroupByModal {view} /> <GroupByModal {view} />

View File

@ -170,7 +170,7 @@
.field-status { .field-status {
color: var(--green); color: var(--green);
justify-self: center; justify-self: center;
font-weight: 500; font-weight: 600;
} }
.error { .error {
@ -192,7 +192,7 @@
label { label {
font-family: var(--font-sans); font-family: var(--font-sans);
cursor: pointer; cursor: pointer;
font-weight: 500; font-weight: 600;
box-sizing: border-box; box-sizing: border-box;
overflow: hidden; overflow: hidden;
border-radius: var(--border-radius-s); border-radius: var(--border-radius-s);

View File

@ -115,7 +115,7 @@
div.delete-items div { div.delete-items div {
margin-top: 4px; margin-top: 4px;
font-weight: 500; font-weight: 600;
} }
.actions { .actions {
@ -127,7 +127,7 @@
h5 { h5 {
margin: 0; margin: 0;
font-weight: 500; font-weight: 600;
} }
footer { footer {

View File

@ -48,7 +48,7 @@
} }
.title { .title {
font-weight: 500; font-weight: 600;
} }
.subtitle { .subtitle {

View File

@ -23,7 +23,7 @@
.error { .error {
font-size: var(--font-size-xs); font-size: var(--font-size-xs);
font-weight: 500; font-weight: 600;
} }
.error:first-letter { .error:first-letter {
text-transform: uppercase; text-transform: uppercase;

View File

@ -98,7 +98,7 @@
.text { .text {
flex: 1 1 auto; flex: 1 1 auto;
font-weight: 500; font-weight: 600;
font-size: var(--spectrum-global-dimension-font-size-75); font-size: var(--spectrum-global-dimension-font-size-75);
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;

View File

@ -141,7 +141,7 @@
cursor: pointer; cursor: pointer;
} }
.binding__label { .binding__label {
font-weight: 500; font-weight: 600;
text-transform: capitalize; text-transform: capitalize;
} }
.binding__description { .binding__description {
@ -160,7 +160,7 @@
border-radius: var(--border-radius-m); border-radius: var(--border-radius-m);
padding: 2px; padding: 2px;
margin-left: 2px; margin-left: 2px;
font-weight: 500; font-weight: 600;
} }
.syntax-error { .syntax-error {

View File

@ -209,7 +209,7 @@
.deploy-time { .deploy-time {
color: var(--grey-7); color: var(--grey-7);
font-weight: 500; font-weight: 600;
font-size: var(--font-size-s); font-size: var(--font-size-s);
} }
@ -224,7 +224,7 @@
font-size: var(--font-size-s); font-size: var(--font-size-s);
padding: var(--spacing-s); padding: var(--spacing-s);
border-radius: var(--border-radius-s); border-radius: var(--border-radius-s);
font-weight: 500; font-weight: 600;
text-transform: lowercase; text-transform: lowercase;
width: 80px; width: 80px;
text-align: center; text-align: center;
@ -235,7 +235,7 @@
a { a {
color: var(--blue); color: var(--blue);
font-weight: 500; font-weight: 600;
font-size: var(--font-size-s); font-size: var(--font-size-s);
} }

View File

@ -61,8 +61,7 @@
"icon": "More", "icon": "More",
"children": [ "children": [
"screenslot", "screenslot",
"navigation", "navigation"
"login"
] ]
} }
] ]

View File

@ -1,15 +1,28 @@
export default ` export default `
<html> <html>
<head> <head>
<link rel="stylesheet" href="https://rsms.me/inter/inter.css"> <link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
<link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet"> <link rel="preconnect" href="https://fonts.gstatic.com" />
<link
href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
rel="stylesheet"
/>
<link
href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css"
rel="stylesheet"
/>
<style> <style>
body, html { html,
height: 100% !important; body {
font-family: Inter, sans-serif !important; height: 100%;
margin: 0 !important; width: 100%;
margin: 0;
padding: 0;
} }
*, *:before, *:after {
*,
*:before,
*:after {
box-sizing: border-box; box-sizing: border-box;
} }
</style> </style>

View File

@ -24,7 +24,7 @@
align-items: center; align-items: center;
list-style: none; list-style: none;
font-size: var(--font-size-m); font-size: var(--font-size-m);
font-weight: 500; font-weight: 600;
height: 24px; height: 24px;
} }

View File

@ -87,7 +87,7 @@
font-size: var(--spectrum-global-dimension-font-size-75); font-size: var(--spectrum-global-dimension-font-size-75);
margin-bottom: var(--spacing-m); margin-bottom: var(--spacing-m);
margin-top: var(--spacing-xs); margin-top: var(--spacing-xs);
font-weight: 500; font-weight: 600;
color: var(--grey-7); color: var(--grey-7);
} }
</style> </style>

View File

@ -252,7 +252,7 @@
i:hover { i:hover {
transform: scale(1.1); transform: scale(1.1);
font-weight: 500; font-weight: 600;
cursor: pointer; cursor: pointer;
} }
</style> </style>

View File

@ -144,7 +144,7 @@
margin-bottom: var(--spacing-m); margin-bottom: var(--spacing-m);
font-size: var(--font-size-s); font-size: var(--font-size-s);
color: var(--grey-7); color: var(--grey-7);
font-weight: 500; font-weight: 600;
} }
.action-header:hover, .action-header:hover,

View File

@ -30,7 +30,7 @@
color: var(--grey-7); color: var(--grey-7);
border-radius: var(--border-radius-m); border-radius: var(--border-radius-m);
font-size: var(--spectrum-global-dimension-font-size-75); font-size: var(--spectrum-global-dimension-font-size-75);
font-weight: 500; font-weight: 600;
transition: all 0.3s; transition: all 0.3s;
text-rendering: optimizeLegibility; text-rendering: optimizeLegibility;
} }

View File

@ -386,8 +386,7 @@ export const typography = [
{ label: "Impact", value: "Impact" }, { label: "Impact", value: "Impact" },
{ label: "Inter", value: "Inter" }, { label: "Inter", value: "Inter" },
{ label: "Lucida Sans Unicode", value: "Lucida Sans Unicode" }, { label: "Lucida Sans Unicode", value: "Lucida Sans Unicode" },
{ label: "Roboto", value: "Roboto" }, { label: "Source Sans Pro", value: "Source Sans Pro" },
{ label: "Roboto Mono", value: "Roboto Mono" },
{ label: "Times New Roman", value: "Times New Roman" }, { label: "Times New Roman", value: "Times New Roman" },
{ label: "Verdana", value: "Verdana" }, { label: "Verdana", value: "Verdana" },
], ],

View File

@ -36,7 +36,7 @@
cursor: pointer; cursor: pointer;
color: var(--grey-7); color: var(--grey-7);
margin: 0 12px 0 0; margin: 0 12px 0 0;
font-weight: 500; font-weight: 600;
font-size: 1rem; font-size: 1rem;
display: flex; display: flex;
flex-direction: row; flex-direction: row;

View File

@ -25,7 +25,7 @@
cursor: pointer; cursor: pointer;
color: var(--grey-7); color: var(--grey-7);
margin: 0 12px 0 0; margin: 0 12px 0 0;
font-weight: 500; font-weight: 600;
font-size: 1rem; font-size: 1rem;
display: flex; display: flex;
flex-direction: row; flex-direction: row;

View File

@ -57,6 +57,6 @@
span { span {
font-size: var(--font-size-xs); font-size: var(--font-size-xs);
font-weight: 500; font-weight: 600;
} }
</style> </style>

View File

@ -1,56 +0,0 @@
/* latin-ext */
/* Inter-regular - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
src: local('Inter'), local('Inter-Regular'),
url('/assets/Inter-Regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('/assets/Inter-Regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* Inter-500 - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 500;
src: local('Inter Medium'), local('Inter-Medium'),
url('/assets/Inter-Medium.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('/assets/Inter-Medium.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* Inter-600 - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
src: local('Inter SemiBold'), local('Inter-SemiBold'),
url('/assets/Inter-SemiBold.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('/assets/Inter-SemiBold.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* Inter-700 - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
src: local('Inter Bold'), local('Inter-Bold'),
url('/assets/Inter-Bold.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('/assets/Inter-Bold.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* Inter-800 - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
src: local('Inter ExtraBold'), local('Inter-ExtraBold'),
url('/assets/Inter-ExtraBold.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('/assets/Inter-ExtraBold.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* Inter-900 - latin-ext_latin */
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 900;
src: local('Inter Black'), local('Inter-Black'),
url('/assets/Inter-Black.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
url('/assets/Inter-Black.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

View File

@ -36,6 +36,9 @@ body {
.hoverable:hover { .hoverable:hover {
cursor: pointer; cursor: pointer;
} }
a {
text-decoration: none;
}
/* Top bottom spacing */ /* Top bottom spacing */
.bb-margin-m { .bb-margin-m {
@ -44,11 +47,9 @@ body {
* + .bb-margin-m { * + .bb-margin-m {
margin-top: var(--spacing-m); margin-top: var(--spacing-m);
} }
.bb-margin-xl { .bb-margin-xl {
margin-bottom: var(--spacing-xl); margin-bottom: var(--spacing-xl);
} }
* + .bb-margin-xl { * + .bb-margin-xl {
margin-top: var(--spacing-xl); margin-top: var(--spacing-xl);
} }

View File

@ -7,9 +7,6 @@ import "@spectrum-css/vars/dist/spectrum-light.css"
import "@spectrum-css/vars/dist/spectrum-lightest.css" import "@spectrum-css/vars/dist/spectrum-lightest.css"
import "@spectrum-css/page/dist/index-vars.css" import "@spectrum-css/page/dist/index-vars.css"
import "./global.css" import "./global.css"
import "./fonts.css"
import "./budibase.css"
import "./fonts.css"
import loadSpectrumIcons from "@budibase/bbui/spectrum-icons-vite.js" import loadSpectrumIcons from "@budibase/bbui/spectrum-icons-vite.js"
loadSpectrumIcons() loadSpectrumIcons()

View File

@ -164,7 +164,7 @@
.topnavitemright a:hover { .topnavitemright a:hover {
color: var(--ink); color: var(--ink);
font-weight: 500; font-weight: 600;
} }
.home-logo { .home-logo {

View File

@ -1,7 +1,6 @@
<script> <script>
import { onMount } from "svelte"
import { ActionButton } from "@budibase/bbui" import { ActionButton } from "@budibase/bbui"
import GoogleLogo from "/assets/google-logo.png" import GoogleLogo from "assets/google-logo.png"
import { admin } from "stores/portal" import { admin } from "stores/portal"
let show = false let show = false

View File

@ -186,7 +186,7 @@
span { span {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
font-weight: 500; font-weight: 600;
} }
.content { .content {
overflow: auto; overflow: auto;

View File

@ -55,6 +55,6 @@
padding: 10px; padding: 10px;
display: block; display: block;
color: white; color: white;
font-weight: 500; font-weight: 600;
} }
</style> </style>

View File

@ -14,6 +14,11 @@
<title>{title}</title> <title>{title}</title>
<link rel="icon" type="image/png" href={favicon} /> <link rel="icon" type="image/png" href={favicon} />
<link rel="stylesheet" href="https://rsms.me/inter/inter.css" /> <link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link
href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
rel="stylesheet"
/>
<link <link
href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css"
rel="stylesheet" rel="stylesheet"
@ -21,11 +26,10 @@
<style> <style>
html, html,
body { body {
font-family: Inter;
height: 100%; height: 100%;
width: 100%; width: 100%;
margin: 0px; margin: 0;
padding: 0px; padding: 0;
} }
*, *,

View File

@ -2,8 +2,6 @@ const { BUILTIN_ROLE_IDS } = require("@budibase/auth/roles")
const { UserStatus } = require("@budibase/auth").constants const { UserStatus } = require("@budibase/auth").constants
const { ObjectStoreBuckets } = require("@budibase/auth").objectStore const { ObjectStoreBuckets } = require("@budibase/auth").objectStore
exports.LOGO_URL = "https://i.imgur.com/ycNeYTy.png"
exports.JobQueues = { exports.JobQueues = {
AUTOMATIONS: "automationQueue", AUTOMATIONS: "automationQueue",
} }

View File

@ -1,5 +1,3 @@
const { LOGO_URL } = require("../constants")
const BASE_LAYOUT_PROP_IDS = { const BASE_LAYOUT_PROP_IDS = {
PRIVATE: "layout_private_master", PRIVATE: "layout_private_master",
PUBLIC: "layout_public_master", PUBLIC: "layout_public_master",
@ -100,7 +98,6 @@ const BASE_LAYOUTS = [
"margin-left": "auto", "margin-left": "auto",
"margin-right": "auto", "margin-right": "auto",
padding: "20px", padding: "20px",
color: "#757575",
"font-weight": "400", "font-weight": "400",
"font-size": "16px", "font-size": "16px",
flex: "1 1 auto", flex: "1 1 auto",
@ -109,7 +106,6 @@ const BASE_LAYOUTS = [
active: {}, active: {},
selected: {}, selected: {},
}, },
logoUrl: LOGO_URL,
title: "", title: "",
backgroundColor: "", backgroundColor: "",
color: "", color: "",
@ -123,9 +119,7 @@ const BASE_LAYOUTS = [
_component: "@budibase/standard-components/link", _component: "@budibase/standard-components/link",
_styles: { _styles: {
normal: { normal: {
"font-family": "Inter", "font-weight": "600",
"font-weight": "500",
color: "#000000",
"text-decoration-line": "none", "text-decoration-line": "none",
"font-size": "16px", "font-size": "16px",
}, },

View File

@ -304,29 +304,6 @@
} }
] ]
}, },
"login": {
"name": "Login Form",
"description": "A component that automatically generates a login screen for your app.",
"icon": "Login",
"styleable": true,
"settings": [
{
"type": "text",
"label": "Logo",
"key": "logo"
},
{
"type": "text",
"label": "Title",
"key": "title"
},
{
"type": "text",
"label": "Button Text",
"key": "buttonText"
}
]
},
"navigation": { "navigation": {
"name": "Nav Bar", "name": "Nav Bar",
"description": "A component for handling the navigation within your app.", "description": "A component for handling the navigation within your app.",
@ -338,6 +315,12 @@
"type": "text", "type": "text",
"label": "Logo URL", "label": "Logo URL",
"key": "logoUrl" "key": "logoUrl"
},
{
"type": "boolean",
"label": "Hide logo",
"key": "hideLogo",
"defaultValue": false
} }
] ]
}, },

View File

@ -33,5 +33,6 @@
user-select: none; user-select: none;
white-space: nowrap; white-space: nowrap;
text-align: center; text-align: center;
font-family: var(--font-sans);
} }
</style> </style>

View File

@ -28,14 +28,14 @@
.title { .title {
font-size: 0.85rem; font-size: 0.85rem;
color: #9e9e9e; color: #9e9e9e;
font-weight: 500; font-weight: 600;
margin: 1rem 1.5rem 0.5rem 1.5rem; margin: 1rem 1.5rem 0.5rem 1.5rem;
white-space: pre-wrap; white-space: pre-wrap;
} }
.value { .value {
font-size: 2rem; font-size: 2rem;
font-weight: 500; font-weight: 600;
margin: 0 1.5rem 1.5rem 1.5rem; margin: 0 1.5rem 1.5rem 1.5rem;
color: inherit; color: inherit;
white-space: pre-wrap; white-space: pre-wrap;

View File

@ -22,7 +22,7 @@
.error { .error {
font-size: var(--font-size-xs); font-size: var(--font-size-xs);
font-weight: 500; font-weight: 600;
color: var(--red-dark); color: var(--red-dark);
} }
.error:first-letter { .error:first-letter {

View File

@ -23,3 +23,9 @@
<slot /> <slot />
</a> </a>
{/if} {/if}
<style>
a {
color: var(--spectrum-alias-text-color);
}
</style>

View File

@ -1,194 +0,0 @@
<script>
import { getContext } from "svelte"
const { authStore, styleable, builderStore } = getContext("sdk")
const component = getContext("component")
export let buttonText = "Log In"
export let logo = ""
export let title = ""
export let buttonClass = ""
export let inputClass = ""
let email = ""
let password = ""
let loading = false
let error = false
let _buttonClass = ""
let _inputClass = ""
$: {
_buttonClass = buttonClass || "default-button"
_inputClass = inputClass || "default-input"
}
const login = async () => {
if ($builderStore.inBuilder) {
return
}
loading = true
await authStore.actions.logIn({ email, password })
loading = false
}
function handleKeydown(evt) {
if (evt.key === "Enter") {
login()
}
}
</script>
<svelte:window on:keydown={handleKeydown} />
<div class="root" use:styleable={$component.styles}>
<div class="content">
{#if logo}
<div class="logo-container"><img src={logo} alt="logo" /></div>
{/if}
{#if title}
<h2 class="header-content">{title}</h2>
{/if}
<div class="form-root">
<div class="control">
<input
bind:value={email}
type="email"
placeholder="Email"
class={_inputClass}
/>
</div>
<div class="control">
<input
bind:value={password}
type="password"
placeholder="Password"
class={_inputClass}
/>
</div>
<button disabled={loading} on:click={login} class={_buttonClass}>
{buttonText || "Log In"}
</button>
</div>
{#if error}
<div class="incorrect-details-panel">Incorrect email or password</div>
{/if}
</div>
</div>
<style>
.root {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.content {
display: flex;
flex-direction: column;
align-items: stretch;
justify-content: center;
}
.logo-container {
margin-bottom: 10px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.logo-container > img {
max-height: 80px;
max-width: 200px;
margin-bottom: 20px;
}
.header-content {
font-family: Inter;
font-weight: 700;
color: #1f1f1f;
font-size: 32px;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
font-feature-settings: "case" "rlig" "calt" 0;
margin: 0 0 20px 0;
}
.incorrect-details-panel {
margin-top: 26px;
padding: 10px;
border-style: solid;
border-width: 1px;
border-color: maroon;
border-radius: 4px;
text-align: center;
color: maroon;
background-color: mistyrose;
align-self: stretch;
}
.form-root {
display: flex;
flex-direction: column;
align-items: stretch;
width: 300px;
margin: auto;
gap: 8px;
}
.control {
width: 100%;
}
.default-input {
font-family: Inter;
font-size: 14px;
color: #393c44;
padding: 2px 6px 2px 12px;
margin: 0 0 0.5em 0;
box-sizing: border-box;
border: 0.5px solid #d8d8d8;
border-radius: 4px;
width: 100%;
height: 40px;
transition: border-color 100ms ease-in 0s;
outline-color: #797979;
}
.default-button {
font-family: Inter;
font-size: 16px;
padding: 0.4em;
box-sizing: border-box;
border-radius: 4px;
color: white;
background-color: #393c44;
outline: none;
width: 300px;
height: 40px;
cursor: pointer;
transition: all 0.2s ease 0s;
overflow: hidden;
outline: none;
user-select: none;
white-space: nowrap;
text-align: center;
}
.default-button:hover {
background-color: white;
border-color: #393c44;
color: #393c44;
}
h2 {
text-align: center;
margin-bottom: 10px;
}
</style>

View File

@ -5,16 +5,22 @@
const component = getContext("component") const component = getContext("component")
export let logoUrl export let logoUrl
export let hideLogo
</script> </script>
<div class="nav" use:styleable={$component.styles}> <div class="nav" use:styleable={$component.styles}>
<div class="nav__top"> {#if !hideLogo}
<a href="/" use:linkable> <div class="nav__top">
{#if logoUrl} <a href="/" use:linkable>
<img class="logo" alt="logo" src={logoUrl} height="48" /> <img
{/if} class="logo"
</a> alt="logo"
</div> src={logoUrl || "https://i.imgur.com/Dn7Xt1G.png"}
height="48"
/>
</a>
</div>
{/if}
<div class="nav__menu"> <div class="nav__menu">
<slot /> <slot />
</div> </div>
@ -33,6 +39,7 @@
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 40px;
} }
.nav__top img { .nav__top img {
margin-right: 16px; margin-right: 16px;
@ -52,7 +59,6 @@
.nav__menu { .nav__menu {
display: flex; display: flex;
margin-top: 40px;
flex-direction: row; flex-direction: row;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;

View File

@ -18,7 +18,6 @@ export { default as repeater } from "./Repeater.svelte"
export { default as stackedlist } from "./StackedList.svelte" export { default as stackedlist } from "./StackedList.svelte"
export { default as card } from "./Card.svelte" export { default as card } from "./Card.svelte"
export { default as text } from "./Text.svelte" export { default as text } from "./Text.svelte"
export { default as login } from "./Login.svelte"
export { default as navigation } from "./Navigation.svelte" export { default as navigation } from "./Navigation.svelte"
export { default as link } from "./Link.svelte" export { default as link } from "./Link.svelte"
export { default as heading } from "./Heading.svelte" export { default as heading } from "./Heading.svelte"