Some checks failed
Android CI Build / check (push) Has been cancelled
Android CI Build / package-apks (push) Has been cancelled
Docs Deploy / build (push) Has been cancelled
Module Market Check / Validate modules/ (push) Has been cancelled
Module Market Publish / Generate submissions.json (push) Has been cancelled
Docs Deploy / deploy (push) Has been cancelled
- Package rename com.webtoapp -> br.com.drukstech.codeapp - Product rename WebToApp/web-to-app -> DruksCode/drukscode - Design system Wta* -> Dkc* - applicationId br.com.drukstech.codeapp (.play for gplay flavor) - rootProject.name DruksCode - Fresh git history (upstream kept as remote for sync)
364 lines
7.5 KiB
CSS
364 lines
7.5 KiB
CSS
/**
|
|
* DruksCode brand theme.
|
|
* Accent is a confident blue that reads well in both light and dark mode.
|
|
* deliberately flat: no hero glow, no gradient text — plain color only.
|
|
* Buttons stay black in both themes: dark background, light text.
|
|
*/
|
|
:root {
|
|
--vp-c-brand-1: #2563eb;
|
|
--vp-c-brand-2: #3b82f6;
|
|
--vp-c-brand-3: #60a5fa;
|
|
--vp-c-brand-soft: rgba(59, 130, 246, 0.14);
|
|
|
|
--vp-home-hero-name-color: var(--vp-c-brand-1);
|
|
--vp-home-hero-image-background-image: none;
|
|
--vp-home-hero-image-filter: none;
|
|
}
|
|
|
|
.dark {
|
|
--vp-c-brand-1: #60a5fa;
|
|
--vp-c-brand-2: #3b82f6;
|
|
--vp-c-brand-3: #2563eb;
|
|
--vp-c-brand-soft: rgba(96, 165, 250, 0.16);
|
|
|
|
--vp-home-hero-name-color: var(--vp-c-brand-1);
|
|
--vp-home-hero-image-background-image: none;
|
|
--vp-home-hero-image-filter: none;
|
|
}
|
|
|
|
/* Buttons: black in light and dark mode instead of the blue accent. */
|
|
:root,
|
|
.dark {
|
|
--vp-button-brand-bg: #171717;
|
|
--vp-button-brand-hover-bg: #262626;
|
|
--vp-button-brand-active-bg: #262626;
|
|
--vp-button-brand-text: #ffffff;
|
|
--vp-button-brand-hover-text: #ffffff;
|
|
--vp-button-brand-active-text: #ffffff;
|
|
|
|
--vp-button-alt-bg: #2b2b2b;
|
|
--vp-button-alt-hover-bg: #383838;
|
|
--vp-button-alt-active-bg: #383838;
|
|
--vp-button-alt-text: #ffffff;
|
|
--vp-button-alt-hover-text: #ffffff;
|
|
--vp-button-alt-active-text: #ffffff;
|
|
}
|
|
|
|
/*
|
|
* Homepage content below the features grid. The markdown lives inside
|
|
* VPHomeContent's 1280px container; .dkc-home narrows to 1152px so the
|
|
* custom sections line up with the features grid above.
|
|
*/
|
|
.dkc-home {
|
|
max-width: 1152px;
|
|
margin: 0 auto;
|
|
padding: 8px 0 48px;
|
|
}
|
|
|
|
.dkc-home h2 {
|
|
margin-top: 56px;
|
|
margin-bottom: 20px;
|
|
padding-top: 0;
|
|
border-top: none;
|
|
font-size: 28px;
|
|
}
|
|
|
|
/* Three-step getting started: numbered cards in a responsive row. */
|
|
.dkc-steps {
|
|
counter-reset: dkc-step;
|
|
}
|
|
|
|
.dkc-steps ol {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 16px;
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
@media (max-width: 959px) {
|
|
.dkc-steps ol {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.dkc-steps li {
|
|
counter-increment: dkc-step;
|
|
position: relative;
|
|
padding: 20px 20px 16px 62px;
|
|
border: 1px solid var(--vp-c-divider);
|
|
border-radius: 12px;
|
|
background-color: var(--vp-c-bg-soft);
|
|
}
|
|
|
|
.dkc-steps li::before {
|
|
content: counter(dkc-step);
|
|
position: absolute;
|
|
left: 18px;
|
|
top: 20px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: 50%;
|
|
background-color: #171717;
|
|
color: #ffffff;
|
|
font-size: 14px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.dark .dkc-steps li::before {
|
|
background-color: #2e2e2e;
|
|
}
|
|
|
|
.dkc-steps li p {
|
|
margin: 0 0 8px;
|
|
}
|
|
|
|
.dkc-steps li p:last-child {
|
|
margin-bottom: 0;
|
|
color: var(--vp-c-text-2);
|
|
font-size: 14px;
|
|
}
|
|
|
|
.dkc-steps li a {
|
|
font-weight: 500;
|
|
text-decoration: none;
|
|
}
|
|
|
|
/* Tile grids: app types and toolbox, mirroring the features card language. */
|
|
.dkc-types {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 16px;
|
|
}
|
|
|
|
@media (max-width: 959px) {
|
|
.dkc-types {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 639px) {
|
|
.dkc-types {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.dkc-types > div {
|
|
border: 1px solid var(--vp-c-divider);
|
|
border-radius: 12px;
|
|
background-color: var(--vp-c-bg-soft);
|
|
padding: 16px 20px;
|
|
transition: border-color 0.25s, background-color 0.25s;
|
|
}
|
|
|
|
.dkc-types > div:hover {
|
|
border-color: var(--vp-c-text-1);
|
|
}
|
|
|
|
.dkc-types p {
|
|
margin: 0;
|
|
padding: 4px 0;
|
|
line-height: 1.7;
|
|
font-size: 14px;
|
|
color: var(--vp-c-text-2);
|
|
}
|
|
|
|
.dkc-types p > a {
|
|
color: var(--vp-c-text-1);
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
transition: color 0.25s;
|
|
}
|
|
|
|
.dkc-types p > a:hover {
|
|
color: var(--vp-c-brand-1);
|
|
}
|
|
|
|
/* Stat strip: number + label pairs in a flat row. */
|
|
.dkc-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 16px;
|
|
}
|
|
|
|
@media (max-width: 767px) {
|
|
.dkc-stats {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
}
|
|
|
|
.dkc-stat {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
padding: 24px 12px;
|
|
border: 1px solid var(--vp-c-divider);
|
|
border-radius: 12px;
|
|
background-color: var(--vp-c-bg-soft);
|
|
}
|
|
|
|
.dkc-stat b {
|
|
font-size: 32px;
|
|
font-weight: 700;
|
|
line-height: 1.2;
|
|
color: var(--vp-c-text-1);
|
|
}
|
|
|
|
.dkc-stat span {
|
|
margin-top: 4px;
|
|
font-size: 13px;
|
|
color: var(--vp-c-text-2);
|
|
}
|
|
|
|
/* Closing call-to-action. */
|
|
.dkc-cta {
|
|
margin-top: 56px;
|
|
padding: 32px 24px;
|
|
text-align: center;
|
|
border: 1px solid var(--vp-c-divider);
|
|
border-radius: 12px;
|
|
background-color: var(--vp-c-bg-soft);
|
|
}
|
|
|
|
.dkc-cta p {
|
|
margin: 0 0 16px;
|
|
font-size: 18px;
|
|
font-weight: 600;
|
|
color: var(--vp-c-text-1);
|
|
}
|
|
|
|
.dkc-cta a {
|
|
display: inline-block;
|
|
padding: 6px 20px;
|
|
border-radius: 20px;
|
|
background-color: #171717;
|
|
color: #ffffff !important;
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
transition: background-color 0.25s;
|
|
}
|
|
|
|
.dkc-cta a:hover {
|
|
background-color: #262626;
|
|
}
|
|
|
|
.dark .dkc-cta a {
|
|
background-color: #2e2e2e;
|
|
}
|
|
|
|
.dark .dkc-cta a:hover {
|
|
background-color: #3a3a3a;
|
|
}
|
|
|
|
/* Feature cards: calmer hover that matches the flat look. */
|
|
.VPFeature.link:hover {
|
|
border-color: var(--vp-c-text-1);
|
|
}
|
|
|
|
/*
|
|
* Hero download button, rendered through the home-hero-actions-after slot.
|
|
* Shares the black-pill grammar of the brand buttons above.
|
|
*/
|
|
.dkc-release {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 8px 12px;
|
|
margin-top: 20px;
|
|
}
|
|
|
|
/*
|
|
* On homepages the LatestRelease slot follows the hero actions container in
|
|
* the same inline formatting context. Because the shrink-to-fit .main column
|
|
* is narrower than buttons + pill together, the pill usually wraps to its
|
|
* own row right below the actions (it stays inline when they do fit);
|
|
* margin-top minus .actions' -6px bottom margin leaves a small gutter there.
|
|
* The pill must be inline-flex, not inline: an inline box's line box is
|
|
* sized by font metrics, so the 40px button bleeds above it into the actions
|
|
* row — that was the overlap bug. Baseline alignment keeps the pill's text
|
|
* on the buttons' text baseline when they share a row. Row alignment
|
|
* (centered below 960px, left above) follows .container's text-align,
|
|
* matching how VitePress aligns the actions row itself.
|
|
*/
|
|
.VPHero .actions {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.VPHero .dkc-release {
|
|
display: inline-flex;
|
|
vertical-align: baseline;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.dkc-release-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 0 20px;
|
|
line-height: 38px;
|
|
border: 1px solid transparent;
|
|
border-radius: 20px;
|
|
background-color: #171717;
|
|
color: #ffffff;
|
|
font-size: 14px;
|
|
font-weight: 600;
|
|
white-space: nowrap;
|
|
text-decoration: none;
|
|
transition: background-color 0.25s;
|
|
}
|
|
|
|
.dkc-release-btn:hover {
|
|
background-color: #262626;
|
|
}
|
|
|
|
.dark .dkc-release-btn {
|
|
background-color: #2e2e2e;
|
|
}
|
|
|
|
.dark .dkc-release-btn:hover {
|
|
background-color: #3a3a3a;
|
|
}
|
|
|
|
.dkc-release-btn svg {
|
|
width: 16px;
|
|
height: 16px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.dkc-release-meta {
|
|
font-size: 12px;
|
|
color: var(--vp-c-text-3);
|
|
}
|
|
|
|
/* Install-download block for guide pages. */
|
|
.dkc-install {
|
|
margin: 16px 0;
|
|
padding: 20px 24px;
|
|
border: 1px solid var(--vp-c-divider);
|
|
border-radius: 12px;
|
|
background-color: var(--vp-c-bg-soft);
|
|
}
|
|
|
|
.dkc-install p {
|
|
margin: 0 0 12px;
|
|
font-weight: 600;
|
|
color: var(--vp-c-text-1);
|
|
}
|
|
|
|
.dkc-install p:last-child {
|
|
margin-bottom: 0;
|
|
font-weight: 400;
|
|
font-size: 14px;
|
|
color: var(--vp-c-text-2);
|
|
}
|
|
|
|
.dkc-install .dkc-release {
|
|
justify-content: flex-start;
|
|
margin-top: 4px;
|
|
} |