Created Dev-portal pages (#1219)
* Created Dev-portal pages * changed structure of documents for dev-portal section, renamed dev-portal to docs, related template changes * keeping learn section for future usage * update dev-portal and documents * added feedback and breadcrumbs components * used the docs-side menu partial on documentation pages, and added active state to the docs-header links * search console on docs * small fixes * assigned partitions, css fix * fix links on the core page * update links for cloud * update links for build * Reference -> API Reference * [WIP] Dev portal light theme (#1250) * light theme - docs side menu * background fix * wip: updating layout * layout update * light theme * card titles with a link * upd page-search package * simplified header * fixes * TOC scroll spy (#1259) * scroll spy on table of contents * packages versions fix * custom scroll spy for toc * make spy work again --------- Co-authored-by: generall <andrey@vasnetsov.com> * limit toc depth to 3 * thin scrollbar * No dev template (#1266) * divided the docs template into smaller partials, increased reusability * removed docs section, moved all to the documentation * review fixes * review fixes --------- Co-authored-by: generall <andrey@vasnetsov.com> * side panel more compact * toc margin bottom fix * Refactoring and renaming (#1277) * renamed and moved partials, fixed link * refactoring: docs-card * fix * fix urls * disable scrollbar on table of content * added scrollbar colors for light theme (#1280) * fix language * Dev portal fixes (#1285) * cards fixes * moved files, fixed paddings * fix for my fix * external header links * fix --------- Co-authored-by: trean <trean.mi@gmail.com> Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com> Co-authored-by: davidmyriel <davidmyriel@gmail.com>
@@ -107,6 +107,9 @@ disableKinds = ["taxonomy", "term"]
|
||||
[markup.highlight]
|
||||
noClasses = false
|
||||
codeFences=true
|
||||
[markup.tableOfContents]
|
||||
startLevel = 1
|
||||
endLevel = 3
|
||||
|
||||
[related]
|
||||
includeNewer = true
|
||||
|
||||
@@ -2,7 +2,74 @@
|
||||
title: Home
|
||||
weight: 2
|
||||
hideTOC: true
|
||||
breadcrumb: false
|
||||
content:
|
||||
- partial: "documentation/banners/banner-a"
|
||||
title: Qdrant Documentation
|
||||
description: Qdrant is an AI-native vector database and a semantic search engine. You can use it to extract meaningful information from unstructured data.
|
||||
linkDescription: <a href="https://github.com/qdrant/qdrant_demo/" target="_blank">Clone this repo now</a> and build a search engine in five minutes.
|
||||
cloudButton:
|
||||
text: Cloud Quickstart
|
||||
url: /documentation/quickstart-cloud/
|
||||
localButton:
|
||||
text: Local Quickstart
|
||||
url: /documentation/quickstart/
|
||||
contained: true
|
||||
- partial: documentation/banners/banner-d
|
||||
developingTitle: Ready to start developing?
|
||||
developingDescription: Qdrant is open-source and can be self-hosted. However, the quickest way to get started is with our <a href="https://qdrant.to/cloud" target="_blank">free tier</a> on Qdrant Cloud. It scales easily and provides a UI where you can interact with data.
|
||||
developingBlock:
|
||||
title: Create your first Qdrant Cloud cluster today
|
||||
button:
|
||||
text: Get Started
|
||||
url: https://qdrant.to/cloud
|
||||
image:
|
||||
src: /img/rocket.svg
|
||||
alt: Rocket
|
||||
- partial: documentation/sections/cards-section
|
||||
title: Optimize Qdrant's performance
|
||||
description: Boost search speed, reduce latency, and improve the accuracy and memory usage of your Qdrant deployment.
|
||||
button:
|
||||
text: Learn More
|
||||
url: /documentation/guides/optimize/
|
||||
cardsPartial: documentation/cards/docs-cards
|
||||
cards:
|
||||
- id: 1
|
||||
tag: Documents
|
||||
icon:
|
||||
src: /icons/outline/documentation-blue.svg
|
||||
alt: Documents
|
||||
title: Distributed Deployment
|
||||
description: Scale Qdrant beyond a single node and optimize for high availability, fault tolerance, and billion-scale performance.
|
||||
link:
|
||||
url: /documentation/guides/distributed_deployment/
|
||||
text: Read More
|
||||
- id: 2
|
||||
tag: Documents
|
||||
icon:
|
||||
src: /icons/outline/documentation-blue.svg
|
||||
alt: Documents
|
||||
title: Multitenancy
|
||||
description: Build vector search apps that serve millions of users. Learn about data isolation, security, and performance tuning.
|
||||
link:
|
||||
url: /documentation/guides/multiple-partitions/
|
||||
text: Read More
|
||||
- id: 3
|
||||
tag: Blog
|
||||
tagColor: violet
|
||||
icon:
|
||||
src: /icons/outline/blog-purple.svg
|
||||
alt: Blog
|
||||
title: Vector Quantization
|
||||
description: Learn about cutting-edge techniques for vector quantization and how they can be used to improve search performance.
|
||||
link:
|
||||
url: /articles/what-is-vector-quantization/
|
||||
text: Read More
|
||||
partition: qdrant
|
||||
---
|
||||
|
||||
THIS CONTENT IS GOING TO BE IGNORED FOR NOW
|
||||
|
||||
# Documentation
|
||||
|
||||
Qdrant is an AI-native vector database and a semantic search engine. You can use it to extract meaningful information from unstructured data. Want to see how it works? [Clone this repo now](https://github.com/qdrant/qdrant_demo/) and build a search engine in five minutes.
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
title: Build World-Class Applications
|
||||
slug: build
|
||||
breadcrumb: false
|
||||
content:
|
||||
- partial: documentation/banners/banner-c
|
||||
title: Build World-Class Applications
|
||||
description: Dev-portal Build
|
||||
image:
|
||||
src: /img/dev-portal-build/spanish-ai-app-hero.png
|
||||
alt: Spanish AI app.png
|
||||
startedButton:
|
||||
text: Get Started
|
||||
url: https://qdrant.to/cloud
|
||||
- partial: documentation/sections/cards-section
|
||||
title: Start Building
|
||||
description: Deploy and manage high-performance vector search clusters across cloud environments. Easily scale with fully managed cloud solutions, integrate seamlessly across hybrid setups, or maintain complete control with private cloud deployments in Kubernetes.
|
||||
cardsPartial: documentation/cards/docs-cards
|
||||
cards:
|
||||
- id: 1
|
||||
image:
|
||||
src: /img/dev-portal-build/search.png
|
||||
alt: Search
|
||||
title: Search
|
||||
description: Build a simple neural search service with Qdrant and FastEmbed. Learn how to upload data, create indexes, and run search queries.
|
||||
link:
|
||||
url: /documentation/tutorials/hybrid-search-fastembed/
|
||||
text: Read More
|
||||
- id: 2
|
||||
image:
|
||||
src: /img/dev-portal-build/rag.png
|
||||
alt: RAG
|
||||
title: RAG
|
||||
description: Build end-to-end prototype chatbots. Learn how Qdrant integrates with popular RAG frameworks like LangChain and Llamaindex.
|
||||
link:
|
||||
url: /documentation/frameworks/langchain/
|
||||
text: Read More
|
||||
- id: 3
|
||||
image:
|
||||
src: /img/dev-portal-build/pipelines.png
|
||||
alt: Pipelines
|
||||
title: Pipelines
|
||||
description: Integrate Qdrant into your data infrastructure by connecting with popular data engineering tools.
|
||||
link:
|
||||
url: /documentation/send-data/
|
||||
text: Read More
|
||||
partition: build
|
||||
hideInSidebar: true
|
||||
---
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: Welcome to Qdrant Cloud
|
||||
slug: cloud-intro
|
||||
breadcrumb: false
|
||||
content:
|
||||
- partial: documentation/banners/banner-b
|
||||
title: Welcome to Qdrant Cloud
|
||||
description: Dev-portal Cloud
|
||||
image:
|
||||
src: /img/dev-portal-cloud/dev-portal-cloud-hero.png
|
||||
alt: Qdrant cloud dashboard
|
||||
startedButton:
|
||||
text: Get Started
|
||||
url: https://qdrant.to/cloud
|
||||
- partial: documentation/sections/cards-section
|
||||
title: Managed Services
|
||||
description: Deploy and manage high-performance vector search clusters across cloud environments. Easily scale with fully managed cloud solutions, integrate seamlessly across hybrid setups, or maintain complete control with private cloud deployments in Kubernetes.
|
||||
cardsPartial: documentation/cards/docs-cards
|
||||
cards:
|
||||
- id: 1
|
||||
image:
|
||||
src: /img/dev-portal-cloud/managed-cloud.png
|
||||
alt: Qdrant Cloud
|
||||
title: Qdrant Cloud
|
||||
description: Qdrant Managed Cloud is our SaaS solution, providing managed Qdrant database clusters on the cloud.
|
||||
link:
|
||||
url: /documentation/cloud/
|
||||
text: Read More
|
||||
- id: 2
|
||||
image:
|
||||
src: /img/dev-portal-cloud/hybrid-cloud.png
|
||||
alt: Hybrid Cloud
|
||||
title: Hybrid Cloud
|
||||
description: Deploy and manage your vector database across diverse environments, ensuring performance, security, and cost efficiency.
|
||||
link:
|
||||
url: /documentation/hybrid-cloud/
|
||||
text: Read More
|
||||
- id: 3
|
||||
image:
|
||||
src: /img/dev-portal-cloud/private-cloud.png
|
||||
alt: Private Cloud
|
||||
title: Private Cloud
|
||||
description: Qdrant Private Cloud allows you to manage Qdrant database clusters in any Kubernetes cluster on any infrastructure.
|
||||
link:
|
||||
url: /documentation/private-cloud/
|
||||
text: Read More
|
||||
- partial: documentation/sections/cards-section
|
||||
title: Customer Support
|
||||
description: Stream, index, and migrate data to Qdrant with these essential tools and strategies.
|
||||
cardsPartial: documentation/cards/docs-cards
|
||||
cardsPerRow: 2
|
||||
cards:
|
||||
- id: 1
|
||||
icon:
|
||||
src: /icons/outline/discord-purple.svg
|
||||
alt: Discord icon
|
||||
title: Community Support
|
||||
description: Join 6,000+ active members to learn, collaborate, and participate in Qdrant’s latest activities.
|
||||
link:
|
||||
text: Join our Discord
|
||||
url: https://qdrant.to/discord
|
||||
- id: 2
|
||||
icon:
|
||||
src: /icons/outline/support-blue.svg
|
||||
alt: Support icon
|
||||
title: Qdrant Cloud Support
|
||||
description: Paying customers have access to our Support team. Links to the support portal are available in the Qdrant Cloud Console.
|
||||
link:
|
||||
text: Join Qdrant
|
||||
url: https://qdrant.to/cloud
|
||||
partition: cloud
|
||||
hideInSidebar: true
|
||||
---
|
||||
@@ -3,6 +3,7 @@ title: Managed Cloud
|
||||
weight: 12
|
||||
aliases:
|
||||
- /documentation/overview/qdrant-alternatives/documentation/cloud/
|
||||
partition: cloud
|
||||
---
|
||||
|
||||
# About Qdrant Managed Cloud
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
title: Concepts
|
||||
weight: 8
|
||||
# If the index.md file is empty, the link to the section will be hidden from the sidebar
|
||||
partition: qdrant
|
||||
---
|
||||
|
||||
# Concepts
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Data Management
|
||||
weight: 18
|
||||
partition: build
|
||||
---
|
||||
|
||||
## Data Management Integrations
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Practice Datasets
|
||||
weight: 29
|
||||
partition: build
|
||||
---
|
||||
|
||||
# Common Datasets in Snapshot Format
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
#Delimiter files are used to separate the list of documentation pages into sections.
|
||||
title: "Interfaces"
|
||||
type: delimiter
|
||||
weight: 25 # Change this weight to change order of sections
|
||||
sitemapExclude: True
|
||||
_build:
|
||||
publishResources: false
|
||||
render: never
|
||||
partition: cloud
|
||||
---
|
||||
@@ -2,9 +2,10 @@
|
||||
#Delimiter files are used to separate the list of documentation pages into sections.
|
||||
title: "Support"
|
||||
type: delimiter
|
||||
weight: 27 # Change this weight to change order of sections
|
||||
weight: 30 # Change this weight to change order of sections
|
||||
sitemapExclude: True
|
||||
_build:
|
||||
publishResources: false
|
||||
render: never
|
||||
partition: cloud
|
||||
---
|
||||
@@ -3,6 +3,7 @@
|
||||
title: "Examples"
|
||||
type: delimiter
|
||||
weight: 24 # Change this weight to change order of sections
|
||||
partition: build
|
||||
sitemapExclude: True
|
||||
_build:
|
||||
publishResources: false
|
||||
@@ -7,4 +7,5 @@ sitemapExclude: True
|
||||
_build:
|
||||
publishResources: false
|
||||
render: never
|
||||
partition: qdrant
|
||||
---
|
||||
@@ -7,4 +7,5 @@ sitemapExclude: True
|
||||
_build:
|
||||
publishResources: false
|
||||
render: never
|
||||
partition: build
|
||||
---
|
||||
@@ -7,4 +7,5 @@ sitemapExclude: True
|
||||
_build:
|
||||
publishResources: false
|
||||
render: never
|
||||
partition: cloud
|
||||
---
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
#Delimiter files are used to separate the list of documentation pages into sections.
|
||||
title: "Support"
|
||||
type: delimiter
|
||||
weight: 30 # Change this weight to change order of sections
|
||||
sitemapExclude: True
|
||||
_build:
|
||||
publishResources: false
|
||||
render: never
|
||||
partition: qdrant
|
||||
---
|
||||
@@ -7,4 +7,5 @@ sitemapExclude: True
|
||||
_build:
|
||||
publishResources: false
|
||||
render: never
|
||||
partition: qdrant
|
||||
---
|
||||
@@ -2,6 +2,7 @@
|
||||
---
|
||||
title: Embeddings
|
||||
weight: 19
|
||||
partition: build
|
||||
---
|
||||
# Supported Embedding Providers & Models
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Build Prototypes
|
||||
weight: 26
|
||||
partition: build
|
||||
---
|
||||
# Examples
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
title: FAQ
|
||||
weight: 28
|
||||
weight: 31
|
||||
partition: qdrant
|
||||
is_empty: true
|
||||
---
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: "FastEmbed"
|
||||
weight: 6
|
||||
partition: qdrant
|
||||
---
|
||||
|
||||
# What is FastEmbed?
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Frameworks
|
||||
weight: 20
|
||||
partition: build
|
||||
---
|
||||
|
||||
## Framework Integrations
|
||||
|
||||
@@ -3,4 +3,5 @@ title: Guides
|
||||
weight: 9
|
||||
# If the index.md file is empty, the link to the section will be hidden from the sidebar
|
||||
is_empty: true
|
||||
partition: qdrant
|
||||
---
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Hybrid Cloud
|
||||
weight: 13
|
||||
partition: cloud
|
||||
---
|
||||
|
||||
# Qdrant Hybrid Cloud
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Infrastructure
|
||||
weight: 21
|
||||
partition: build
|
||||
---
|
||||
|
||||
## Infrastructure Integrations
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: API & SDKs
|
||||
weight: 6
|
||||
partition: qdrant
|
||||
aliases:
|
||||
- /documentation/interfaces/
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Observability
|
||||
weight: 22
|
||||
partition: build
|
||||
---
|
||||
|
||||
## Observability Integrations
|
||||
|
||||
@@ -3,6 +3,7 @@ title: What is Qdrant?
|
||||
weight: 3
|
||||
aliases:
|
||||
- overview
|
||||
partition: qdrant
|
||||
---
|
||||
|
||||
# Introduction
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Platforms
|
||||
weight: 23
|
||||
partition: build
|
||||
---
|
||||
|
||||
## Platform Integrations
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Private Cloud
|
||||
weight: 14
|
||||
partition: cloud
|
||||
---
|
||||
|
||||
# Qdrant Private Cloud
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Qdrant Cloud API
|
||||
weight: 15
|
||||
weight: 26
|
||||
partition: cloud
|
||||
---
|
||||
# Qdrant Cloud API
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
title: Cloud Quickstart
|
||||
weight: 4
|
||||
partition: qdrant
|
||||
aliases:
|
||||
- quickstart-cloud
|
||||
- ../cloud-quick-start
|
||||
- cloud-quick-start
|
||||
- cloud-quickstart
|
||||
@@ -124,3 +124,4 @@ When ready, use the Console and our complete REST API to try other operations.
|
||||
|
||||
Now that you have a Qdrant Cloud cluster up and running, you should [test remote access](/documentation/cloud/authentication/#test-cluster-access) with a Qdrant Client.
|
||||
|
||||
For more about Qdrant Cloud, check our [dedicated documentation](/documentation/cloud-intro/).
|
||||
@@ -1,10 +1,10 @@
|
||||
---
|
||||
title: Local Quickstart
|
||||
weight: 5
|
||||
partition: qdrant
|
||||
aliases:
|
||||
- quick_start
|
||||
- quick-start
|
||||
- quickstart
|
||||
---
|
||||
# How to Get Started with Qdrant Locally
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Release Notes
|
||||
weight: 30
|
||||
weight: 32
|
||||
partition: qdrant
|
||||
type: external-link
|
||||
external_url: https://github.com/qdrant/qdrant/releases
|
||||
sitemapExclude: True
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Send Data to Qdrant
|
||||
weight: 25
|
||||
partition: build
|
||||
---
|
||||
|
||||
## How to Send Your Data to a Qdrant Cluster
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
title: Support
|
||||
weight: 16
|
||||
weight: 35
|
||||
partition: cloud
|
||||
aliases:
|
||||
- /documentation/cloud/support/
|
||||
---
|
||||
|
||||
@@ -6,6 +6,7 @@ is_empty: false
|
||||
aliases:
|
||||
- how-to
|
||||
- tutorials
|
||||
partition: qdrant
|
||||
---
|
||||
|
||||
# Tutorials
|
||||
|
||||
@@ -159,7 +159,7 @@ Image.open(client.search(
|
||||
|
||||

|
||||
|
||||
<h3 style="font-size: 1.25em;">Image-to-Text</h3>
|
||||
### Image-to-Text
|
||||
Now, let's do a reverse search with an image:
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Was this page useful?
|
||||
positiveButton:
|
||||
text: "Yes"
|
||||
url: /#
|
||||
icon:
|
||||
src: /icons/outline/thumb-up.svg
|
||||
alt: Thumb up icon
|
||||
negativeButton:
|
||||
text: "No"
|
||||
url: /#
|
||||
icon:
|
||||
src: /icons/outline/thumb-down.svg
|
||||
alt: Thumb down icon
|
||||
sitemapExclude: true
|
||||
---
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
logIn:
|
||||
text: Log in
|
||||
url: https://cloud.qdrant.io/
|
||||
startFree:
|
||||
text: Start Free
|
||||
url: https://cloud.qdrant.io/
|
||||
logoLink: /
|
||||
menuItems:
|
||||
- id: menu-0
|
||||
name: Qdrant
|
||||
url: /documentation/
|
||||
- id: menu-1
|
||||
name: Cloud
|
||||
url: /documentation/cloud-intro/
|
||||
- id: menu-2
|
||||
name: Build
|
||||
url: /documentation/build/
|
||||
# - id: menu-3
|
||||
# name: Learn
|
||||
# url: /documentation/learn/
|
||||
- id: menu-4
|
||||
name: API Reference
|
||||
url: https://api.qdrant.tech/api-reference
|
||||
external: true
|
||||
sitemapExclude: true
|
||||
---
|
||||
@@ -133,5 +133,9 @@ bages:
|
||||
- src: /img/gdpr-badge.png
|
||||
alt: "heyData GDPR"
|
||||
url: https://heydata.eu/
|
||||
question: Ready to get started with Qdrant?
|
||||
questionButton:
|
||||
text: Start Free
|
||||
url: https://qdrant.to/cloud/
|
||||
sitemapExclude: true
|
||||
---
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"anchor-js": "^5.0.0",
|
||||
"bootstrap": "^5.3.3",
|
||||
"clipboard": "^2.0.11",
|
||||
"qdrant-page-search": "^1.0.8"
|
||||
"qdrant-page-search": "^1.0.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "^7.23.9",
|
||||
@@ -3173,9 +3173,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/qdrant-page-search": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/qdrant-page-search/-/qdrant-page-search-1.0.9.tgz",
|
||||
"integrity": "sha512-297elNEhqo/ETFl4ZdoMWD92l7hSTDYckm6BYk6+iTnC9qECGoM9xnIkzbgCdNtIpfjFi6VfuLXysxzvwQha0A=="
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/qdrant-page-search/-/qdrant-page-search-1.0.10.tgz",
|
||||
"integrity": "sha512-ZNWXClp8EpfVGmI4qgcPFsSbXSAZ4iZx7hU04henwDV9x3OjjpMNY8jAbReK9/EtjraWEwGdRaArhRK0HzC/MQ=="
|
||||
},
|
||||
"node_modules/queue-microtask": {
|
||||
"version": "1.2.3",
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"anchor-js": "^5.0.0",
|
||||
"bootstrap": "^5.3.3",
|
||||
"clipboard": "^2.0.11",
|
||||
"qdrant-page-search": "^1.0.8"
|
||||
"qdrant-page-search": "^1.0.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "^7.23.9",
|
||||
|
||||
@@ -22,6 +22,19 @@ html {
|
||||
}
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: $neutral-50 $neutral-20;
|
||||
|
||||
&[data-theme="light"] {
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: $neutral-80;
|
||||
}
|
||||
&::-webkit-scrollbar-track {
|
||||
background: $neutral-94;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background: $neutral-90;
|
||||
}
|
||||
scrollbar-color: $neutral-80 $neutral-94;
|
||||
}
|
||||
}
|
||||
|
||||
.scrolled {
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
@import 'base';
|
||||
@import 'partials/theme-switch';
|
||||
@import 'partials/docs-menu';
|
||||
@import 'partials/documentation';
|
||||
@import 'partials/documentation-article';
|
||||
@import 'partials/documentation/documentation-menu';
|
||||
@import 'partials/documentation/docs-card';
|
||||
@import 'partials/documentation/documentation';
|
||||
@import 'partials/documentation/documentation-article';
|
||||
@import 'partials/documentation/docs';
|
||||
@import 'partials/documentation/docs-header';
|
||||
@import 'partials/documentation/docs-breadcrumbs';
|
||||
@import 'partials/documentation/docs-feedback';
|
||||
@import 'partials/documentation/docs-articles-posts';
|
||||
@import 'partials/table-of-contents';
|
||||
@import 'partials/feedback';
|
||||
@import 'partials/documentation/docs-footer';
|
||||
@import 'search/dark-theme';
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
@use '../helpers/functions' as *;
|
||||
|
||||
.documentation {
|
||||
padding-top: $spacer;
|
||||
background-color: $neutral-10;
|
||||
color: $neutral-70;
|
||||
|
||||
&__container {
|
||||
@extend .container;
|
||||
max-width: pxToRem(1440);
|
||||
padding: 0 $spacer;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
padding-top: $spacer * 4;
|
||||
padding-bottom: $spacer * 7.5;
|
||||
|
||||
&__container {
|
||||
padding: 0 $spacer * 2.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme='light'] {
|
||||
.documentation {
|
||||
background-color: $neutral-98;
|
||||
color: $neutral-30;
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,8 @@
|
||||
color: $neutral-98;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
&:hover,
|
||||
&.active {
|
||||
color: $primary-50;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,28 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use 'sass:math';
|
||||
|
||||
.table-of-contents {
|
||||
background-color: $neutral-10;
|
||||
margin-bottom: -1px;
|
||||
scrollbar-width: none;
|
||||
|
||||
&__head {
|
||||
display: none;
|
||||
margin-bottom: 0;
|
||||
padding: 0 math.div($spacer, 2) $spacer;
|
||||
color: $neutral-98;
|
||||
}
|
||||
|
||||
&__title {
|
||||
display: none;
|
||||
color: $neutral-98;
|
||||
margin-bottom: $spacer;
|
||||
font-size: map-get($font-sizes-text, 'md');
|
||||
line-height: pxToRem(24);
|
||||
margin-bottom: math.div($spacer, 4);
|
||||
padding: math.div($spacer, 4) math.div($spacer, 2);
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
}
|
||||
|
||||
nav {
|
||||
display: none;
|
||||
padding-bottom: pxToRem(12);
|
||||
padding-bottom: $spacer;
|
||||
|
||||
ul {
|
||||
padding-left: 0;
|
||||
@@ -27,14 +35,24 @@
|
||||
|
||||
a {
|
||||
display: block;
|
||||
margin-bottom: pxToRem(12);
|
||||
padding: math.div($spacer, 4) math.div($spacer, 2);
|
||||
color: $neutral-70;
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
transition: all 0.3s;
|
||||
|
||||
&:hover {
|
||||
color: $primary-50;
|
||||
color: $neutral-98;
|
||||
}
|
||||
|
||||
&.active {
|
||||
font-weight: 600;
|
||||
background-color: $neutral-30;
|
||||
color: $neutral-90;
|
||||
border-radius: $spacer * 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,8 +63,8 @@
|
||||
}
|
||||
|
||||
&__external-links {
|
||||
border-top: 1px solid $neutral-50;
|
||||
border-bottom: 1px solid $neutral-50;
|
||||
border-top: pxToRem(1) solid $neutral-20;
|
||||
border-bottom: pxToRem(1) solid $neutral-20;
|
||||
list-style: none;
|
||||
padding: $spacer * 1.5 0;
|
||||
margin: 0;
|
||||
@@ -54,6 +72,8 @@
|
||||
|
||||
&__link {
|
||||
margin-bottom: pxToRem(12);
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
|
||||
&:last-of-type {
|
||||
margin-bottom: 0;
|
||||
@@ -63,6 +83,9 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: calc($spacer / 2);
|
||||
padding: 0 math.div($spacer, 2);
|
||||
color: $neutral-98;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
@@ -76,22 +99,51 @@
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
max-height: calc(100vh - 80px);
|
||||
width: pxToRem(232);
|
||||
position: sticky;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
top: $spacer * 5;
|
||||
margin-bottom: pxToRem(220);
|
||||
flex-shrink: 0;
|
||||
padding: $spacer * 1.5 $spacer $spacer * 1.5 pxToRem(40);
|
||||
|
||||
&__external-links {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
nav,
|
||||
&__head,
|
||||
&__title {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme='light'] & {
|
||||
background-color: $neutral-98;
|
||||
margin-bottom: $spacer * 2;
|
||||
&__title,
|
||||
&__head {
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
&__title {
|
||||
color: $neutral-30;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $neutral-30;
|
||||
font-weight: 400;
|
||||
transition: all 0.3s;
|
||||
&:hover {
|
||||
color: $primary-50;
|
||||
}
|
||||
&.active {
|
||||
font-weight: 600;
|
||||
background-color: $neutral-90;
|
||||
color: $neutral-30;
|
||||
border-radius: $spacer * 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
&__external-links {
|
||||
@@ -101,7 +153,21 @@
|
||||
|
||||
&__link {
|
||||
a {
|
||||
color: $primary-50;
|
||||
color: $neutral-30;
|
||||
transition:
|
||||
color 0.3s,
|
||||
fill 0.25s;
|
||||
font-weight: 500;
|
||||
svg path {
|
||||
fill: $neutral-30;
|
||||
}
|
||||
&:hover {
|
||||
color: $primary-50;
|
||||
text-decoration: none;
|
||||
svg path {
|
||||
fill: $primary-50;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
@use 'sass:math';
|
||||
|
||||
.dev-portal-articles-posts {
|
||||
.post {
|
||||
&-preview {
|
||||
padding-bottom: 0;
|
||||
margin-bottom: $spacer;
|
||||
border-radius: $spacer * 0.5;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
&-title {
|
||||
margin-bottom: math.div($spacer, 4);
|
||||
font-size: pxToRem(18);
|
||||
line-height: pxToRem(27);
|
||||
color: $neutral-98;
|
||||
}
|
||||
|
||||
&-description {
|
||||
margin-bottom: $spacer * 0.5;
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
color: $neutral-70;
|
||||
}
|
||||
|
||||
&-about {
|
||||
color: $neutral-50;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
@use 'sass:math';
|
||||
|
||||
.docs-breadcrumbs {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: pxToRem(10);
|
||||
padding: 0;
|
||||
margin: 0 0 $spacer * 2.5 0;
|
||||
|
||||
&__crumb {
|
||||
list-style: none;
|
||||
text-transform: capitalize;
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
padding: math.div($spacer, 4) 0;
|
||||
font-weight: 400;
|
||||
|
||||
&:last-child {
|
||||
color: $neutral-98;
|
||||
}
|
||||
|
||||
& > a {
|
||||
color: $neutral-50;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
&-separator {
|
||||
list-style: none;
|
||||
height: pxToRem(12);
|
||||
width: pxToRem(12);
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='12' height='13' viewBox='0 0 12 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 1.5L9 6.5L4 11.5' stroke='%23576280' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme='light'] & {
|
||||
&__crumb {
|
||||
&:last-child {
|
||||
color: $neutral-20;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.docs-feedback {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: $spacer;
|
||||
padding: $spacer * 2.5 0;
|
||||
|
||||
&__title {
|
||||
color: $neutral-98;
|
||||
font-size: pxToRem(18);
|
||||
line-height: pxToRem(27);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&__buttons {
|
||||
display: flex;
|
||||
gap: $spacer * 0.5;
|
||||
}
|
||||
|
||||
&__button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $spacer * 0.5;
|
||||
box-shadow: 0 0 0 pxToRem(1) $neutral-30;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
[data-theme='light'] & {
|
||||
&__title {
|
||||
color: $neutral-20;
|
||||
}
|
||||
&__button {
|
||||
img {
|
||||
filter: invert(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.docs-footer {
|
||||
&__cta {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: $spacer * 2.5 0;
|
||||
border-top: 1px solid $neutral-20;
|
||||
border-bottom: 1px solid $neutral-20;
|
||||
color: $neutral-98;
|
||||
|
||||
h4 {
|
||||
margin-bottom: $spacer * 1.5;
|
||||
padding: 0 !important;
|
||||
font-size: pxToRem(20);
|
||||
line-height: pxToRem(30);
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
&__bottom {
|
||||
@extend .footer__bottom;
|
||||
}
|
||||
|
||||
&__bottom-content {
|
||||
@extend .footer__bottom-content;
|
||||
|
||||
& span,
|
||||
& a {
|
||||
color: $neutral-70;
|
||||
font-weight: 400;
|
||||
font-size: map-get($font-sizes-text, 's');
|
||||
line-height: pxToRem(21);
|
||||
}
|
||||
|
||||
& a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
&__bottom-links {
|
||||
@extend .footer__bottom-links;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
&__bottom {
|
||||
@extend .footer__bottom;
|
||||
}
|
||||
|
||||
&__bottom-content {
|
||||
@extend .footer__bottom-content;
|
||||
}
|
||||
|
||||
&__cta {
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
|
||||
h4 {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme='light'] & {
|
||||
color: $neutral-30;
|
||||
|
||||
&__bottom-content * {
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
&__cta {
|
||||
border-top-color: $neutral-80;
|
||||
border-bottom-color: $neutral-80;
|
||||
color: $neutral-30;
|
||||
|
||||
h4 {
|
||||
border-color: $neutral-20;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.docs-header {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background: $neutral-10;
|
||||
z-index: 4;
|
||||
|
||||
.logo {
|
||||
width: pxToRem(148);
|
||||
}
|
||||
|
||||
.main-menu {
|
||||
border-bottom: pxToRem(1) solid $neutral-20;
|
||||
|
||||
&__links {
|
||||
margin-right: auto;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
&__buttons {
|
||||
&-input {
|
||||
width: pxToRem(300);
|
||||
height: pxToRem(35);
|
||||
position: relative;
|
||||
margin-right: $spacer * 1.5;
|
||||
|
||||
svg {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: $spacer;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
button {
|
||||
height: 100%;
|
||||
padding-left: $spacer * 2.5;
|
||||
color: $neutral-70;
|
||||
text-align: left;
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(18);
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: $spacer;
|
||||
transform: translateY(-50%);
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_6269_137)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1.8335 6.66665C1.8335 3.99727 3.99745 1.83331 6.66683 1.83331C9.33621 1.83331 11.5002 3.99727 11.5002 6.66665C11.5002 7.99157 10.9671 9.19197 10.1037 10.0651C10.097 10.0711 10.0904 10.0773 10.0839 10.0838C10.0775 10.0902 10.0713 10.0968 10.0653 10.1035C9.19215 10.9669 7.99175 11.5 6.66683 11.5C3.99745 11.5 1.8335 9.33602 1.8335 6.66665ZM10.423 11.1299C9.40815 11.9848 8.09765 12.5 6.66683 12.5C3.44517 12.5 0.833496 9.88831 0.833496 6.66665C0.833496 3.44498 3.44517 0.833313 6.66683 0.833313C9.88849 0.833313 12.5002 3.44498 12.5002 6.66665C12.5002 8.09746 11.985 9.40796 11.1301 10.4228L15.0204 14.3131C15.2156 14.5084 15.2156 14.8249 15.0204 15.0202C14.8251 15.2155 14.5085 15.2155 14.3133 15.0202L10.423 11.1299Z' fill='%238F98B3'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_6269_137'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.menu-mobile {
|
||||
padding-top: pxToRem(12);
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
.main-menu {
|
||||
height: $spacer * 5;
|
||||
padding: pxToRem(22) $spacer * 1.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
.scrolled .main-menu {
|
||||
padding: $spacer * 2 $spacer * 1.5 $spacer * 0.5;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,289 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
@use 'sass:math';
|
||||
|
||||
.docs {
|
||||
&-core {
|
||||
h2 {
|
||||
padding-top: 0;
|
||||
margin-bottom: $spacer * 0.5;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: $spacer * 1.5;
|
||||
}
|
||||
|
||||
a.button:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
section {
|
||||
margin-bottom: $spacer * 4;
|
||||
}
|
||||
|
||||
&__overlay {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: pxToRem(294);
|
||||
height: pxToRem(240);
|
||||
background-position: bottom;
|
||||
background-size: cover;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&:before {
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
background-image: url('/img/blurred/blurred-light-17.svg');
|
||||
}
|
||||
|
||||
&:after {
|
||||
top: 0;
|
||||
right: 0;
|
||||
background-image: url('/img/blurred/blurred-light-18.svg');
|
||||
}
|
||||
}
|
||||
|
||||
&__hero {
|
||||
width: 100%;
|
||||
padding: $spacer * 1.5 $spacer * 1.5 $spacer * 2;
|
||||
background: linear-gradient(180deg, $neutral-20 0%, rgba(14, 20, 36, 0.1) 100%);
|
||||
text-align: center;
|
||||
border: pxToRem(1) solid $neutral-20;
|
||||
border-radius: pxToRem(12);
|
||||
|
||||
&-title {
|
||||
padding-top: 0 !important;
|
||||
margin-bottom: $spacer * 0.5 !important;
|
||||
font-size: pxToRem(32); // take from variables
|
||||
color: $neutral-98;
|
||||
line-height: pxToRem(40);
|
||||
}
|
||||
|
||||
&-description {
|
||||
margin-bottom: $spacer * 0.5 !important;
|
||||
}
|
||||
|
||||
&-link {
|
||||
margin-bottom: $spacer * 2 !important;
|
||||
}
|
||||
|
||||
&-buttons {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
gap: $spacer * 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
&__developing {
|
||||
&-block {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
padding: $spacer * 1.5 $spacer;
|
||||
background: url('/img/stars-pattern.png') $neutral-10;
|
||||
border: pxToRem(1) solid $neutral-20;
|
||||
border-radius: $spacer * 0.5;
|
||||
|
||||
&-text {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
z-index: 2;
|
||||
|
||||
h3 {
|
||||
font-size: pxToRem(20);
|
||||
line-height: pxToRem(30);
|
||||
font-weight: 500;
|
||||
padding: 0;
|
||||
margin-bottom: $spacer * 1.5;
|
||||
}
|
||||
|
||||
a {
|
||||
font-size: pxToRem(14);
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
&-image {
|
||||
position: relative;
|
||||
height: $spacer * 10;
|
||||
z-index: 2;
|
||||
|
||||
img {
|
||||
height: 100%;
|
||||
margin: $spacer * 2 auto 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__hero {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
position: relative;
|
||||
flex-direction: column;
|
||||
gap: $spacer * 2;
|
||||
width: 100%;
|
||||
min-height: pxToRem(240);
|
||||
padding: $spacer * 1.5 $spacer;
|
||||
background: url('/img/stars-pattern.png') $neutral-10;
|
||||
border: pxToRem(1) solid $neutral-20;
|
||||
border-radius: pxToRem(12);
|
||||
|
||||
&-content {
|
||||
position: relative;
|
||||
align-self: center;
|
||||
text-align: center;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
&-title {
|
||||
max-width: pxToRem(400);
|
||||
padding-top: 0 !important;
|
||||
margin-bottom: $spacer * 1.5 !important;
|
||||
font-size: pxToRem(32); // take from variables
|
||||
color: $neutral-98;
|
||||
line-height: pxToRem(40);
|
||||
}
|
||||
|
||||
&-image {
|
||||
position: relative;
|
||||
align-self: center;
|
||||
width: 100%;
|
||||
max-width: pxToRem(360) !important;
|
||||
margin: 0 !important;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
a {
|
||||
font-size: pxToRem(14);
|
||||
font-weight: 500;
|
||||
}
|
||||
}
|
||||
|
||||
&-cloud {
|
||||
&__hero {
|
||||
.dev-portal__hero-image {
|
||||
max-width: pxToRem(459) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
&__hero {
|
||||
flex-direction: row;
|
||||
gap: 0;
|
||||
padding: 0 $spacer * 2.5;
|
||||
|
||||
&-content {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&-image {
|
||||
align-self: end;
|
||||
}
|
||||
}
|
||||
|
||||
&-core {
|
||||
&__hero {
|
||||
padding: $spacer * 1.5 pxToRem(120);
|
||||
}
|
||||
&__developing {
|
||||
&-block {
|
||||
padding: 0;
|
||||
|
||||
&-text {
|
||||
text-align: left;
|
||||
|
||||
h3,
|
||||
a {
|
||||
margin-left: $spacer * 2.5;
|
||||
}
|
||||
}
|
||||
|
||||
&-image {
|
||||
img {
|
||||
margin: 0 0 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
&__article {
|
||||
width: calc(100% - 256px);
|
||||
min-height: calc(100vh - 80px);
|
||||
padding: $spacer * 1.5 $spacer * 5 0;
|
||||
margin: 0 0 0 pxToRem(256);
|
||||
border-left: pxToRem(1) solid $neutral-20;
|
||||
|
||||
&-content {
|
||||
width: calc(100% - 232px);
|
||||
padding-right: $spacer * 2.5;
|
||||
}
|
||||
|
||||
&-table {
|
||||
width: pxToRem(232);
|
||||
}
|
||||
}
|
||||
}
|
||||
[data-theme='light'] & {
|
||||
.docs-core__hero {
|
||||
background: linear-gradient(180deg, $neutral-20 0%, $neutral-10 100%);
|
||||
color: $neutral-70;
|
||||
&-title {
|
||||
color: $neutral-98;
|
||||
}
|
||||
.button_outlined {
|
||||
color: $neutral-100;
|
||||
box-shadow: 0 0 0 1px $neutral-60;
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 2px $neutral-60;
|
||||
}
|
||||
}
|
||||
}
|
||||
.docs-core__developing-block {
|
||||
h3 {
|
||||
color: $neutral-98;
|
||||
}
|
||||
.button_outlined {
|
||||
color: $neutral-100;
|
||||
box-shadow: 0 0 0 1px $neutral-60;
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 2px $neutral-60;
|
||||
}
|
||||
}
|
||||
}
|
||||
&__hero-content {
|
||||
h1 {
|
||||
color: $neutral-98;
|
||||
}
|
||||
.button_outlined {
|
||||
color: $neutral-100;
|
||||
box-shadow: 0 0 0 1px $neutral-60;
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 2px $neutral-60;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
&__article {
|
||||
border-left-color: $neutral-80;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use '../mixins/mixins' as *;
|
||||
@use '../../helpers/functions' as *;
|
||||
@use '../../mixins/mixins' as *;
|
||||
|
||||
.documentation-article {
|
||||
padding-top: $spacer * 2;
|
||||
padding-bottom: $spacer * 1.5;
|
||||
font-weight: 400;
|
||||
|
||||
h1 {
|
||||
font-size: $spacer * 2;
|
||||
@@ -17,17 +17,19 @@
|
||||
h3,
|
||||
h4 {
|
||||
font-size: $spacer * 1.5;
|
||||
font-weight: 500;
|
||||
line-height: pxToRem(34);
|
||||
color: $neutral-98;
|
||||
margin-bottom: $spacer;
|
||||
padding-top: $spacer * 0.5;
|
||||
}
|
||||
|
||||
p, summary {
|
||||
p,
|
||||
summary {
|
||||
margin-bottom: $spacer;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
a:not([class]):hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
@@ -57,8 +59,7 @@
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
margin: -8px 0 -16px;
|
||||
padding: 0 $spacer * 1.5;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use '../../helpers/functions' as *;
|
||||
@use 'sass:math';
|
||||
|
||||
.docs-menu {
|
||||
background-color: $neutral-20;
|
||||
border-top: 1px solid $neutral-30;
|
||||
margin: 0 -16px;
|
||||
margin: 0 (-$spacer) $spacer * 2;
|
||||
scrollbar-width: thin;
|
||||
|
||||
&__header {
|
||||
display: flex;
|
||||
@@ -11,6 +13,9 @@
|
||||
justify-content: space-between;
|
||||
padding: pxToRem(15) pxToRem(20);
|
||||
cursor: pointer;
|
||||
.docs-menu__button svg {
|
||||
transition: transform 0.2s;
|
||||
}
|
||||
|
||||
&.active {
|
||||
.docs-menu__button svg {
|
||||
@@ -29,7 +34,7 @@
|
||||
|
||||
&__content {
|
||||
display: none;
|
||||
padding: $spacer * 1.5 $spacer * 2 pxToRem(12);
|
||||
padding: pxToRem(12) $spacer * 1.5;
|
||||
|
||||
&.active {
|
||||
display: block;
|
||||
@@ -38,8 +43,7 @@
|
||||
|
||||
&__input {
|
||||
position: relative;
|
||||
margin-top: $spacer;
|
||||
margin-bottom: $spacer * 2;
|
||||
margin: $spacer * 2 0;
|
||||
|
||||
svg {
|
||||
position: absolute;
|
||||
@@ -49,20 +53,19 @@
|
||||
}
|
||||
|
||||
button {
|
||||
padding-left: $spacer * 2.8;
|
||||
padding-left: $spacer * 2.5;
|
||||
color: $neutral-70;
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-top: 1px;
|
||||
width: $spacer;
|
||||
height: $spacer;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: $spacer;
|
||||
transform: translateY(-50%);
|
||||
background: url('/icons/outline/search-white.svg') no-repeat;
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_6269_137)'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1.8335 6.66665C1.8335 3.99727 3.99745 1.83331 6.66683 1.83331C9.33621 1.83331 11.5002 3.99727 11.5002 6.66665C11.5002 7.99157 10.9671 9.19197 10.1037 10.0651C10.097 10.0711 10.0904 10.0773 10.0839 10.0838C10.0775 10.0902 10.0713 10.0968 10.0653 10.1035C9.19215 10.9669 7.99175 11.5 6.66683 11.5C3.99745 11.5 1.8335 9.33602 1.8335 6.66665ZM10.423 11.1299C9.40815 11.9848 8.09765 12.5 6.66683 12.5C3.44517 12.5 0.833496 9.88831 0.833496 6.66665C0.833496 3.44498 3.44517 0.833313 6.66683 0.833313C9.88849 0.833313 12.5002 3.44498 12.5002 6.66665C12.5002 8.09746 11.985 9.40796 11.1301 10.4228L15.0204 14.3131C15.2156 14.5084 15.2156 14.8249 15.0204 15.0202C14.8251 15.2155 14.5085 15.2155 14.3133 15.0202L10.423 11.1299Z' fill='%238F98B3'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_6269_137'%3E%3Crect width='16' height='16' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -80,23 +83,24 @@
|
||||
}
|
||||
|
||||
&__links {
|
||||
|
||||
&-title {
|
||||
margin-bottom: 0;
|
||||
padding: math.div($spacer, 2);
|
||||
color: $neutral-98;
|
||||
font-weight: bold;
|
||||
font-size: pxToRem(18);
|
||||
line-height: pxToRem(27);
|
||||
margin: 0 0 $spacer;
|
||||
padding-top: $spacer * 0.5;
|
||||
font-size: $spacer;
|
||||
line-height: $spacer * 1.5;
|
||||
|
||||
&:not(:nth-of-type(1)) {
|
||||
margin-top: pxToRem(12);
|
||||
padding-top: $spacer;
|
||||
}
|
||||
}
|
||||
|
||||
&-group {
|
||||
padding-bottom: pxToRem(4);
|
||||
|
||||
&-heading {
|
||||
display: block;
|
||||
position: relative;
|
||||
margin-bottom: $spacer * 0.5;
|
||||
// hide native details marker
|
||||
&::-webkit-details-marker {
|
||||
display: none;
|
||||
@@ -107,6 +111,9 @@
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
color: $neutral-70;
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,31 +123,53 @@
|
||||
width: pxToRem(10);
|
||||
height: pxToRem(10);
|
||||
position: absolute;
|
||||
top: pxToRem(7);
|
||||
right: pxToRem(4);
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.16667 0.916341C3.10476 0.869913 3.03115 0.841641 2.95409 0.834692C2.87702 0.827742 2.79954 0.842391 2.73033 0.876997C2.66112 0.911602 2.60291 0.964797 2.56223 1.03062C2.52155 1.09644 2.5 1.17229 2.5 1.24967V8.74968C2.5 8.82706 2.52155 8.90291 2.56223 8.96873C2.60291 9.03455 2.66112 9.08775 2.73033 9.12235C2.79954 9.15696 2.87702 9.17161 2.95409 9.16466C3.03115 9.15771 3.10476 9.12944 3.16667 9.08301L8.16667 5.33301C8.21842 5.2942 8.26042 5.24387 8.28934 5.18601C8.31827 5.12816 8.33333 5.06436 8.33333 4.99967C8.33333 4.93499 8.31827 4.87119 8.28934 4.81334C8.26042 4.75548 8.21842 4.70515 8.16667 4.66634L3.16667 0.916341Z' fill='%238F98B3'/%3E%3C/svg%3E%0A");
|
||||
top: pxToRem(10);
|
||||
right: $spacer;
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='10' height='11' viewBox='0 0 10 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.832764 3.41669L4.99943 7.58335L9.1661 3.41669' stroke='%238F98B3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
&.active {
|
||||
.docs-menu__links-group-heading > a {
|
||||
padding: pxToRem(4) 0 pxToRem(4) $spacer;
|
||||
border-left: pxToRem(1) solid $primary-50;
|
||||
font-weight: 600;
|
||||
background-color: $neutral-30;
|
||||
color: $neutral-90;
|
||||
border-radius: $spacer * 0.5;
|
||||
}
|
||||
|
||||
summary:after {
|
||||
top: pxToRem(11);
|
||||
top: pxToRem(10);
|
||||
}
|
||||
}
|
||||
|
||||
&[open=''] {
|
||||
summary:after {
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.66732 8.16667C4.70781 8.21588 4.75871 8.25552 4.81634 8.28273C4.87397 8.30995 4.93692 8.32406 5.00065 8.32406C5.06439 8.32406 5.12733 8.30995 5.18496 8.28273C5.2426 8.25552 5.29349 8.21588 5.33398 8.16667L9.08399 3.16667C9.13041 3.10476 9.15869 3.03115 9.16564 2.95409C9.17258 2.87702 9.15794 2.79954 9.12333 2.73033C9.08872 2.66112 9.03553 2.60291 8.96971 2.56223C8.90388 2.52155 8.82803 2.5 8.75065 2.5H1.25065C1.17327 2.5 1.09742 2.52155 1.0316 2.56223C0.965773 2.60291 0.912579 2.66112 0.877973 2.73033C0.843368 2.79954 0.828719 2.87702 0.835668 2.95409C0.842617 3.03115 0.87089 3.10476 0.917318 3.16667L4.66732 8.16667Z' fill='%238F98B3'/%3E%3C/svg%3E%0A");
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
padding: math.div($spacer, 4) $spacer * 1.5 math.div($spacer, 4) math.div($spacer, 2);
|
||||
// margin-bottom: math.div($spacer, 4);
|
||||
}
|
||||
|
||||
&.external-link {
|
||||
.docs-menu__links-group-heading {
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: pxToRem(10);
|
||||
height: pxToRem(10);
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: $spacer;
|
||||
background: url('/icons/outline/external-link.svg') no-repeat;
|
||||
background-size: contain;
|
||||
margin-top: $spacer * -0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -150,7 +179,6 @@
|
||||
padding-left: $spacer;
|
||||
|
||||
&-item {
|
||||
margin-bottom: $spacer * 0.5;
|
||||
list-style: none;
|
||||
|
||||
a {
|
||||
@@ -159,6 +187,7 @@
|
||||
align-items: center;
|
||||
color: $neutral-70;
|
||||
font-size: pxToRem(14);
|
||||
font-weight: 400;
|
||||
line-height: pxToRem(21);
|
||||
}
|
||||
|
||||
@@ -172,9 +201,17 @@
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
background-color: $neutral-10;
|
||||
height: calc(100vh - 80px);
|
||||
width: pxToRem(256);
|
||||
flex-shrink: 0;
|
||||
position: sticky;
|
||||
overflow-x: hidden;
|
||||
top: $spacer * 5;
|
||||
padding: $spacer $spacer $spacer;
|
||||
background-color: transparent;
|
||||
border-top: none;
|
||||
margin: 0;
|
||||
border-right: pxToRem(1) solid $neutral-20;
|
||||
|
||||
&__header {
|
||||
display: none;
|
||||
@@ -186,11 +223,20 @@
|
||||
}
|
||||
|
||||
&__input {
|
||||
margin-bottom: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
&__links {
|
||||
margin-top: $spacer * 1.5;
|
||||
&-title {
|
||||
&:not(:nth-of-type(1)) {
|
||||
border-top: pxToRem(1) solid $neutral-20;
|
||||
}
|
||||
}
|
||||
|
||||
& > :last-child {
|
||||
padding-bottom: $spacer;
|
||||
border-bottom: pxToRem(1) solid $neutral-20;
|
||||
}
|
||||
}
|
||||
|
||||
&__links-group {
|
||||
@@ -249,7 +295,8 @@
|
||||
}
|
||||
|
||||
summary:after {
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.16667 0.916341C3.10476 0.869913 3.03115 0.841641 2.95409 0.834692C2.87702 0.827742 2.79954 0.842391 2.73033 0.876997C2.66112 0.911602 2.60291 0.964797 2.56223 1.03062C2.52155 1.09644 2.5 1.17229 2.5 1.24967V8.74968C2.5 8.82706 2.52155 8.90291 2.56223 8.96873C2.60291 9.03455 2.66112 9.08775 2.73033 9.12235C2.79954 9.15696 2.87702 9.17161 2.95409 9.16466C3.03115 9.15771 3.10476 9.12944 3.16667 9.08301L8.16667 5.33301C8.21842 5.2942 8.26042 5.24387 8.28934 5.18601C8.31827 5.12816 8.33333 5.06436 8.33333 4.99967C8.33333 4.93499 8.31827 4.87119 8.28934 4.81334C8.26042 4.75548 8.21842 4.70515 8.16667 4.66634L3.16667 0.916341Z' fill='%2328324d'/%3E%3C/svg%3E");
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='10' height='7' viewBox='0 0 10 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='Group'%3E%3Cpath id='Vector' d='M0.833374 1.4165L5.00004 5.58317L9.16671 1.4165' stroke='%2328324D' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E%0A");
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
&.active {
|
||||
@@ -261,7 +308,7 @@
|
||||
|
||||
&[open=''] {
|
||||
summary:after {
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.66732 8.16667C4.70781 8.21588 4.75871 8.25552 4.81634 8.28273C4.87397 8.30995 4.93692 8.32406 5.00065 8.32406C5.06439 8.32406 5.12733 8.30995 5.18496 8.28273C5.2426 8.25552 5.29349 8.21588 5.33398 8.16667L9.08399 3.16667C9.13041 3.10476 9.15869 3.03115 9.16564 2.95409C9.17258 2.87702 9.15794 2.79954 9.12333 2.73033C9.08872 2.66112 9.03553 2.60291 8.96971 2.56223C8.90388 2.52155 8.82803 2.5 8.75065 2.5H1.25065C1.17327 2.5 1.09742 2.52155 1.0316 2.56223C0.965773 2.60291 0.912579 2.66112 0.877973 2.73033C0.843368 2.79954 0.828719 2.87702 0.835668 2.95409C0.842617 3.03115 0.87089 3.10476 0.917318 3.16667L4.66732 8.16667Z' fill='%2328324d'/%3E%3C/svg%3E");
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -289,16 +336,32 @@
|
||||
}
|
||||
}
|
||||
|
||||
&__links > :last-child,
|
||||
&__links-title:not(:nth-of-type(1)) {
|
||||
border-color: $neutral-80;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
background-color: $neutral-98;
|
||||
border-right-color: $neutral-80;
|
||||
|
||||
&__links-group {
|
||||
&.active {
|
||||
.docs-menu__links-group-heading > a {
|
||||
background-color: $neutral-94;
|
||||
color: $neutral-30;
|
||||
}
|
||||
}
|
||||
|
||||
&.external-link {
|
||||
.docs-menu__links-group-heading {
|
||||
&:after {
|
||||
mask: url('/icons/outline/external-link.svg') no-repeat;
|
||||
-webkit-mask: url('/icons/outline/external-link.svg') no-repeat;
|
||||
mask-size: contain;
|
||||
-webkit-mask-size: contain;
|
||||
background: $neutral-30;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.documentation {
|
||||
background-color: $neutral-10;
|
||||
min-height: calc(100vh - 80px);
|
||||
color: $neutral-70;
|
||||
|
||||
&__container {
|
||||
@extend .container;
|
||||
margin: 0;
|
||||
max-width: 100%;
|
||||
}
|
||||
&__article-wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
&__content-wrapper {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
&__container {
|
||||
max-width: 100vw !important;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
&__content {
|
||||
$side-menu-width: pxToRem(256);
|
||||
width: calc(100% - #{$side-menu-width});
|
||||
padding: $spacer * 1.5 $spacer * 2.5 $spacer * 3.5;
|
||||
}
|
||||
&__content-wrapper {
|
||||
max-width: calc(1136px - $spacer * 2.5 * 1.5);
|
||||
margin: 0 auto;
|
||||
}
|
||||
&__article-wrapper {
|
||||
$toc-width: pxToRem(232);
|
||||
width: calc(100% - #{$toc-width});
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme='light'] & {
|
||||
background-color: $neutral-94;
|
||||
color: $neutral-30;
|
||||
|
||||
.button_outlined {
|
||||
color: $neutral-30;
|
||||
box-shadow: 0 0 0 1px $neutral-70;
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 2px $neutral-70;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
@use 'sass:math';
|
||||
|
||||
.docs-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
gap: pxToRem(12);
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
max-width: pxToRem(456);
|
||||
margin: 0 auto;
|
||||
padding: $spacer * 1.5;
|
||||
border: pxToRem(1) solid $neutral-20;
|
||||
background: linear-gradient(180deg, $neutral-20 0%, rgba(14, 20, 36, 0.1) 100%);
|
||||
border-radius: pxToRem(12);
|
||||
overflow: hidden;
|
||||
color: $neutral-70;
|
||||
|
||||
&__tag {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $spacer * 0.5;
|
||||
color: $secondary-blue-50;
|
||||
|
||||
&_violet {
|
||||
color: $secondary-violet-50;
|
||||
}
|
||||
&_teal {
|
||||
color: $secondary-teal-50;
|
||||
}
|
||||
}
|
||||
|
||||
img.docs-card__icon {
|
||||
width: $spacer * 1.5;
|
||||
height: $spacer * 1.5;
|
||||
margin: 0;
|
||||
// :has() selector only works in newer versions of browsers
|
||||
// but in this case it has just minor visual effect
|
||||
&:has(+ span) {
|
||||
width: auto;
|
||||
height: $spacer * 0.9;
|
||||
}
|
||||
}
|
||||
|
||||
img.docs-card__image {
|
||||
$correctingMargin: $spacer * -1.5;
|
||||
width: calc(100% + $spacer * 3);
|
||||
max-width: none;
|
||||
margin: $correctingMargin $correctingMargin $spacer * 0.75 $correctingMargin;
|
||||
}
|
||||
|
||||
&__title,
|
||||
h3.docs-card__title {
|
||||
font-size: pxToRem(20);
|
||||
line-height: pxToRem(30);
|
||||
color: $neutral-98;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
&__description,
|
||||
p.docs-card__description {
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
margin: 0;
|
||||
@include media-breakpoint-up(lg) {
|
||||
flex-grow: 1;
|
||||
}
|
||||
}
|
||||
|
||||
&__arrow {
|
||||
margin: auto 0 0 auto;
|
||||
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
margin-top: pxToRem(12);
|
||||
height: $spacer;
|
||||
width: $spacer;
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 3.33337L14.6667 8.00004L10 12.6667' stroke='%238F98B3' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M1.33331 8H14.6666' stroke='%238F98B3' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
}
|
||||
|
||||
a.docs__card-link {
|
||||
margin: 0 0 $spacer * 2 $spacer * 1.5;
|
||||
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: linear-gradient(180deg, $neutral-20 0%, #0e1424 100%);
|
||||
|
||||
.docs-card__arrow:after {
|
||||
background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.0001 3.33337L14.6667 8.00004L10.0001 12.6667' stroke='%23DC244C' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M1.33337 8.00006H14.6667' stroke='%23DC244C' stroke-width='1.33333' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
|
||||
}
|
||||
|
||||
.docs-card__link {
|
||||
$icon-width: pxToRem(20);
|
||||
padding-right: calc($icon-width + 6px);
|
||||
&:after {
|
||||
animation: dash 0.3s ease-in-out forwards;
|
||||
}
|
||||
|
||||
&:before {
|
||||
animation: dash 0.3s ease-in-out forwards;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
[data-theme='light'] & {
|
||||
background: $neutral-98;
|
||||
border-color: $neutral-90;
|
||||
color: $neutral-10;
|
||||
|
||||
.docs-card__title {
|
||||
color: $neutral-10;
|
||||
}
|
||||
&:hover {
|
||||
.docs-card__title {
|
||||
color: $primary-50;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,6 @@
|
||||
export const LG_BREAKPOINT = 992;
|
||||
export const XL_BREAKPOINT = 1200;
|
||||
export const XXL_BREAKPOINT = 1400;
|
||||
|
||||
// Offset for content navigation from the top of the page
|
||||
export const DOCS_HEADER_OFFSET = 100;
|
||||
@@ -1,5 +1,6 @@
|
||||
import ThemeSwitch from './theme-switch.js';
|
||||
import { XL_BREAKPOINT } from './constants';
|
||||
import TableOfContents from './table-of-content';
|
||||
|
||||
const themeSwitch = new ThemeSwitch();
|
||||
|
||||
@@ -15,10 +16,10 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
sidebar.classList.toggle('active');
|
||||
});
|
||||
|
||||
const moveSearchButton = function() {
|
||||
const moveSearchButton = function () {
|
||||
const checkIfFirstChildIsSearch = (element) => {
|
||||
return element.children.length > 0 && element.children[0].classList.contains('docs-menu__input');
|
||||
}
|
||||
};
|
||||
|
||||
const isMobile = window.innerWidth <= XL_BREAKPOINT;
|
||||
if (isMobile && !checkIfFirstChildIsSearch(docsMenu)) {
|
||||
@@ -26,9 +27,14 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
} else if (!isMobile && !checkIfFirstChildIsSearch(sidebar)) {
|
||||
sidebar.before(searchbar);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
moveSearchButton();
|
||||
|
||||
window.addEventListener('resize', moveSearchButton);
|
||||
|
||||
// if #TableOfContents and .documentation-article exists on the page, initialize TableOfContents class
|
||||
if (document.getElementById('TableOfContents') && document.querySelector('.documentation-article')) {
|
||||
new TableOfContents('#TableOfContents', '.documentation-article');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -31,11 +31,17 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
let menuOffset = window.innerWidth >= 1400 ? PADDING_PART_TO_HIDE : 0; // 24px is a PART of padding-top which we want to scroll over
|
||||
|
||||
function addScrollStateToPage() {
|
||||
if (!header) {
|
||||
return;
|
||||
}
|
||||
header.style.minHeight = `${header.offsetHeight}px`;
|
||||
body.classList.add('scrolled');
|
||||
}
|
||||
|
||||
function removeScrollStateFromPage() {
|
||||
if (!header) {
|
||||
return;
|
||||
}
|
||||
header.style.minHeight = '';
|
||||
body.classList.remove('scrolled');
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import 'qdrant-page-search/dist/js/search.min.js';
|
||||
|
||||
(function () {
|
||||
if (/documentation/.test(window.location?.pathname)) {
|
||||
if (/documentation|docs/.test(window.location?.pathname)) {
|
||||
window.initQdrantSearch({ searchApiUrl: 'https://search.qdrant.tech/api/search', section: 'documentation' });
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
import { DOCS_HEADER_OFFSET } from './constants';
|
||||
|
||||
class TableOfContents {
|
||||
constructor(tocSelector, contentSelector) {
|
||||
this.tocLinks = Array.from(document.querySelectorAll(`${tocSelector} a`));
|
||||
this.headings = Array.from(
|
||||
document.querySelectorAll(
|
||||
`${contentSelector} h1, ${contentSelector} h2, ${contentSelector} h3`,
|
||||
),
|
||||
);
|
||||
this.currentActiveIndex = -1; // Track the current active heading index
|
||||
this.currentActive = null; // Track the current active heading element
|
||||
|
||||
|
||||
this.debounceTimeout = null;
|
||||
|
||||
this.currentlyVisibleHeaderIds = new Set();
|
||||
|
||||
this.headerOffset = DOCS_HEADER_OFFSET + 10;
|
||||
|
||||
this.init();
|
||||
}
|
||||
|
||||
// Initialize the Table of Contents functionality
|
||||
init() {
|
||||
this.setupObserver();
|
||||
}
|
||||
|
||||
// Clear 'active' class from all links
|
||||
clearActiveClasses() {
|
||||
this.tocLinks.forEach((link) => link.classList.remove('active'));
|
||||
}
|
||||
|
||||
// Set active link with debounce
|
||||
setActiveLink(index) {
|
||||
if (index !== this.currentActiveIndex) {
|
||||
this.clearActiveClasses();
|
||||
if (this.tocLinks[index]) {
|
||||
this.tocLinks[index].classList.add('active');
|
||||
this.currentActiveIndex = index;
|
||||
this.currentActive = this.headings[index];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Setup Intersection Observer
|
||||
setupObserver() {
|
||||
const observerCallback = (entries) => {
|
||||
|
||||
entries.forEach((entry) => {
|
||||
const entryIndex = this.headings.indexOf(entry.target);
|
||||
const isIntersecting = entry.isIntersecting;
|
||||
|
||||
if (isIntersecting) {
|
||||
this.currentlyVisibleHeaderIds.add(entryIndex);
|
||||
} else {
|
||||
this.currentlyVisibleHeaderIds.delete(entryIndex);
|
||||
}
|
||||
});
|
||||
|
||||
if (this.currentlyVisibleHeaderIds.size !== 0) {
|
||||
let minimalVisibleHeaderId = Math.min(...Array.from(this.currentlyVisibleHeaderIds));
|
||||
this.setActiveLink(minimalVisibleHeaderId);
|
||||
} else {
|
||||
// No intersection found
|
||||
// If current active heading is below the viewport, then set current active to one above it
|
||||
if (this.currentActive && this.currentActive.getBoundingClientRect().top > this.headerOffset) {
|
||||
this.setActiveLink(this.currentActiveIndex - 1);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Observer options
|
||||
const observerOptions = {
|
||||
root: null,
|
||||
rootMargin: `-${this.headerOffset}px 0px -25% 0px`,
|
||||
threshold: 0.0, // Lower threshold for better visibility
|
||||
};
|
||||
|
||||
const observer = new IntersectionObserver(observerCallback, observerOptions);
|
||||
this.headings.forEach((heading) => observer.observe(heading));
|
||||
}
|
||||
}
|
||||
|
||||
export default TableOfContents;
|
||||
@@ -1,5 +1,6 @@
|
||||
import AnchorJS from 'anchor-js';
|
||||
import { scrollIntoViewWithOffset } from '../helpers';
|
||||
import { DOCS_HEADER_OFFSET } from '../constants';
|
||||
|
||||
const anchors = new AnchorJS();
|
||||
anchors.options.placement = 'left';
|
||||
@@ -8,19 +9,19 @@ anchors.options.class = 'text-decoration-none';
|
||||
document.addEventListener('DOMContentLoaded', function (event) {
|
||||
anchors.add('.qdrant-post__body :is(h1, h2, h3, h4, h5, h6)');
|
||||
if (/documentation/.test(window.location?.pathname)) {
|
||||
anchors.add('.documentation-article :is(h1, h2, h3, h4, h5, h6)');
|
||||
anchors.add('.documentation-article > :is(h1, h2, h3, h4, h5, h6)');
|
||||
}
|
||||
|
||||
// scroll to anchors:
|
||||
let offset = 100;
|
||||
let offset = DOCS_HEADER_OFFSET;
|
||||
|
||||
if (window.location.hash) {
|
||||
scrollIntoViewWithOffset(window.location.hash.replace('#', ''), offset).catch((e) => {
|
||||
console.error(e);
|
||||
});
|
||||
scrollIntoViewWithOffset(window.location.hash.replace('#', ''), offset);
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach((anchor) => {
|
||||
let allLinks = document.querySelectorAll('a[href^="#"]');
|
||||
|
||||
allLinks.forEach((anchor) => {
|
||||
const target = anchor.getAttribute('href');
|
||||
anchor.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{{ define "main" }}
|
||||
{{ partial "site-header" . }}
|
||||
|
||||
{{ partial "documentation" . }}
|
||||
{{ end }}
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
{{- partial "head.html" . -}}
|
||||
<body>
|
||||
<main>
|
||||
{{ partial "documentation/header" . }}
|
||||
{{ partial "documentation/content-layout" . }}
|
||||
</main>
|
||||
</body>
|
||||
{{ partial "js.html" . }}
|
||||
</html>
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
{{ define "main" }}
|
||||
{{ partial "site-header" . }}
|
||||
|
||||
{{ partial "documentation" . }}
|
||||
{{ end }}
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
{{- partial "head.html" . -}}
|
||||
<body>
|
||||
<main>
|
||||
{{ partial "documentation/header" . }}
|
||||
{{ partial "documentation/content-layout" . }}
|
||||
</main>
|
||||
</body>
|
||||
{{ partial "js.html" . }}
|
||||
</html>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<link href="{{ $splideCss.RelPermalink }}" rel="stylesheet" integrity="{{ $splideCss.Data.Integrity }}" />
|
||||
{{ end }}
|
||||
|
||||
{{ if in (slice "blog" "documentation") .Section }}
|
||||
{{ if in (slice "blog" "docs" "documentation") .Section }}
|
||||
{{ $pageSearchCss := resources.Get "css/search/search.scss" | toCSS $opts | minify | resources.Fingerprint "sha512" }}
|
||||
<link href="{{ $pageSearchCss.RelPermalink }}" rel="stylesheet" integrity="{{ $pageSearchCss.Data.Integrity }}" />
|
||||
{{ end }}
|
||||
@@ -21,7 +21,7 @@
|
||||
/>
|
||||
{{ end }}
|
||||
|
||||
{{ if eq .Section "documentation" }}
|
||||
{{ if in (slice "docs" "documentation") .Section }}
|
||||
{{ $documentationCss := resources.Get "css/documentation.scss" | toCSS $opts | minify | resources.Fingerprint "sha512" }}
|
||||
<link
|
||||
href="{{ $documentationCss.RelPermalink }}"
|
||||
@@ -35,7 +35,7 @@
|
||||
<link href="{{ $benchmarksCss.RelPermalink }}" rel="stylesheet" integrity="{{ $benchmarksCss.Data.Integrity }}" />
|
||||
{{ end }}
|
||||
|
||||
{{ if not (in (slice "hybrid-cloud" "documentation" "benchmarks") .Section) }}
|
||||
{{ if not (in (slice "hybrid-cloud" "docs" "documentation" "benchmarks") .Section) }}
|
||||
{{ $mainCss := resources.Get "css/main.scss" | toCSS $opts | minify | resources.Fingerprint "sha512" }}
|
||||
<link href="{{ $mainCss.RelPermalink }}" rel="stylesheet" integrity="{{ .Data.Integrity }}" crossorigin="anonymous" />
|
||||
{{ end }}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
<div class="col-12 col-xl-8">
|
||||
<article class="documentation-article">
|
||||
{{ partial "article-content.html" . }}
|
||||
</article>
|
||||
</div>
|
||||
@@ -1,9 +0,0 @@
|
||||
<section class="documentation documentation_theme-light">
|
||||
<div class="documentation__container">
|
||||
<div class="row gx-4">
|
||||
{{ partial "docs-menu" . }}
|
||||
{{ partial "documentation-article" . }}
|
||||
{{ partial "table-of-contents" . }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,13 @@
|
||||
<section class="docs-core__hero">
|
||||
<h1 class="docs-core__hero-title">{{ .title }}</h1>
|
||||
<p class="docs-core__hero-description">{{ .description }}</p>
|
||||
<p class="docs-core__hero-link">{{ .linkDescription | safeHTML }}</p>
|
||||
<div class="docs-core__hero-buttons">
|
||||
<a href="{{ .cloudButton.url }}" {{ if strings.HasPrefix .cloudButton.url "https://" }}target="_blank"{{ end }} class="button button_contained button_sm">
|
||||
{{ .cloudButton.text }}
|
||||
</a>
|
||||
<a href="{{ .localButton.url }}" {{ if strings.HasPrefix .localButton.url "https://" }}target="_blank"{{ end }} class="button button_outlined button_sm">
|
||||
{{ .localButton.text }}
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,10 @@
|
||||
<section class="docs-cloud__hero docs__hero">
|
||||
<div class="docs__hero-content">
|
||||
<h1 class="docs__hero-title">{{ .title }}</h1>
|
||||
<a href="{{ .startedButton.url }}" {{ if strings.HasPrefix .startedButton.url "https://" }}target="_blank"{{ end }} class="button button_outlined button_sm docs__hero-button">
|
||||
{{ .startedButton.text }}
|
||||
</a>
|
||||
</div>
|
||||
<img class="docs__hero-image" src="{{ .image.src }}" alt="{{ .image.alt }}" />
|
||||
<div class="docs-core__overlay"></div>
|
||||
</section>
|
||||
@@ -0,0 +1,10 @@
|
||||
<section class="docs-build__hero docs__hero">
|
||||
<div class="docs__hero-content">
|
||||
<h1 class="docs__hero-title">{{ .title }}</h1>
|
||||
<a href="{{ .startedButton.url }}" {{ if strings.HasPrefix .startedButton.url "https://" }}target="_blank"{{ end }} class="button button_outlined button_sm docs__hero-button">
|
||||
{{ .startedButton.text }}
|
||||
</a>
|
||||
</div>
|
||||
<img class="docs__hero-image" src="{{ .image.src }}" alt="{{ .image.alt }}" />
|
||||
<div class="docs-core__overlay"></div>
|
||||
</section>
|
||||
@@ -0,0 +1,19 @@
|
||||
<section class="docs-core__developing">
|
||||
<h2>{{ .developingTitle }}</h2>
|
||||
<p>{{ .developingDescription | safeHTML }}</p>
|
||||
|
||||
<div class="docs-core__developing-block">
|
||||
<div class="row align-items-center">
|
||||
<div class="docs-core__developing-block-text col-12 col-lg-7">
|
||||
<h3 class="docs-core__developing-bloc-title">{{ .developingBlock.title }}</h3>
|
||||
<a href="{{ .developingBlock.button.url }}" {{ if strings.HasPrefix .developingBlock.url "https://" }}target="_blank"{{ end }} class="button button_outlined button_sm" target="_blank">
|
||||
{{ .developingBlock.button.text }}
|
||||
</a>
|
||||
</div>
|
||||
<div class="docs-core__developing-block-image col-12 col-lg-5">
|
||||
<img src="{{ .developingBlock.image.src }}" alt="{{ .image.alt }}" />
|
||||
</div>
|
||||
<div class="docs-core__overlay"></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,13 @@
|
||||
<ul class="docs-breadcrumbs">
|
||||
{{ $rellink := "" }}
|
||||
{{ $paths := (split .RelPermalink "/") }}
|
||||
{{ $len := sub (len $paths) 2 }}
|
||||
{{ range first $len $paths }}
|
||||
{{ if gt (len . ) 0 }}
|
||||
{{ $rellink = printf "%s/%s" $rellink . }}
|
||||
<li class="docs-breadcrumbs__crumb"><a href="{{ $rellink }}/">{{ humanize . }}</a></li>
|
||||
<li class="docs-breadcrumbs__crumb-separator"></li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<li class="docs-breadcrumbs__crumb">{{ .Params.title | safeHTML }}</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,36 @@
|
||||
{{ $cardsPerRow := .cardsPerRow }}
|
||||
{{ $cardsPerRow = $cardsPerRow | int }}
|
||||
{{ $cardsPerRow = div 12 $cardsPerRow }}
|
||||
{{ $cardsPerRow = print $cardsPerRow }}
|
||||
{{ $cardsPerRow = printf "col-12 col-lg-%s" $cardsPerRow }}
|
||||
{{ $cardsPerRow = print $cardsPerRow }}
|
||||
|
||||
|
||||
<div class="{{- $cardsPerRow -}}">
|
||||
<a
|
||||
href="{{ .card.link.url }}"
|
||||
{{ if strings.HasPrefix .card.link.url "https://" }}target="_blank"{{ end }}
|
||||
class="docs-card"
|
||||
>
|
||||
{{ if or (.card.tag) (.card.icon) }}
|
||||
<div class="docs-card__tag {{ if .card.tagColor }}docs-card__tag_{{- .card.tagColor -}}{{ end }}">
|
||||
{{ if .card.icon }}
|
||||
<img class="docs-card__icon" src="{{ .card.icon.src }}" alt="{{ .card.icon.alt }}" />
|
||||
{{ end }}
|
||||
{{ if .card.tag }}
|
||||
<span>{{ .card.tag }}</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if .card.image }}
|
||||
<img class="docs-card__image" src="{{ .card.image.src }}" alt="{{ .card.image.alt }}" />
|
||||
{{ end }}
|
||||
<h3 class="docs-card__title">{{ .card.title }}</h3>
|
||||
<p class="docs-card__description">{{ .card.description }}</p>
|
||||
{{ if .card.link.text }}
|
||||
<span class="docs-card__link link link_sm">{{ .card.link.text }}</span>
|
||||
{{ else }}
|
||||
<div class="docs-card__arrow"></div>
|
||||
{{ end }}
|
||||
</a>
|
||||
</div>
|
||||
@@ -0,0 +1,39 @@
|
||||
<!--documentation content layout, aka middle part of the documentation page where the actual content is displayed-->
|
||||
<section class="docs documentation">
|
||||
<div class="documentation__container">
|
||||
<div class="d-flex flex-column flex-xl-row">
|
||||
{{ $partition := partial "get-partition.html" (dict "page" .) }}
|
||||
|
||||
{{ partial "documentation/sidebar-menu" (dict "context" . "partition" $partition) }}
|
||||
|
||||
|
||||
<div class="documentation__content">
|
||||
<!-- todo: update this and styles to support both types of content on the same page-->
|
||||
<div class="documentation__content-wrapper">
|
||||
{{ if .Params.content }}
|
||||
<div class="documentation__article-wrapper">
|
||||
<div class="docs-core documentation-article">
|
||||
{{ partial "documentation/custom-content.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
{{ else }}
|
||||
|
||||
<div class="documentation__article-wrapper">
|
||||
{{ if not (eq .Params.breadcrumb false) }}
|
||||
{{ partial "documentation/breadcrumbs" . }}
|
||||
{{ end }}
|
||||
|
||||
<article class="documentation-article">
|
||||
{{ partial "article-content.html" . }}
|
||||
</article>
|
||||
{{ partial "documentation/feedback.html" . }}
|
||||
</div>
|
||||
{{ partial "table-of-contents" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ partial "documentation/footer.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,6 @@
|
||||
<!--template for displaying `content` list from front matter-->
|
||||
{{ if .Params.content }}
|
||||
{{ range .Params.content }}
|
||||
{{ partial .partial . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
@@ -0,0 +1,36 @@
|
||||
<section class="dev-portal-articles-posts">
|
||||
<div class="dev-portal-articles-posts__articles row gx-3 gy-5 gy-lg-4">
|
||||
{{ $all := ($.Site.GetPage "articles" .Section).Pages.ByPublishDate.Reverse }}
|
||||
{{ $paginator := .Paginate $all 14 }}
|
||||
{{ range $paginator.Pages }}
|
||||
{{ .Scratch.Set "scope" "list" }}
|
||||
|
||||
{{ $link := .Permalink }}
|
||||
{{ if .Params.external_link }}
|
||||
{{ $link = .Params.external_link }}
|
||||
{{ end }}
|
||||
<article class="col-12 col-lg-6 col-xl-4 post">
|
||||
<a class="post-link" href="{{ .RelPermalink }}">
|
||||
<div class="post-preview">
|
||||
<img src="{{ .Params.preview_dir }}/preview.jpg" alt="Preview" />
|
||||
</div>
|
||||
<h6 class="post-title">{{ .Params.title }}</h6>
|
||||
<p class="post-description">{{ .Params.description }}</p>
|
||||
<div class="post-about">
|
||||
<p>{{ .Params.author }}</p>
|
||||
<span>·</span>
|
||||
<p>{{ time.Format "January 02, 2006" .Date }}</p>
|
||||
</div>
|
||||
</a>
|
||||
</article>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="qdrant-articles-posts__pagination col-12">
|
||||
{{ if gt $paginator.TotalPages 1 }}
|
||||
{{ partial "pagination" $paginator }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,15 @@
|
||||
{{ with (.Site.GetPage "/headless/docs-feedback") }}
|
||||
<section class="docs-feedback">
|
||||
<h5 class="docs-feedback__title">{{ .Params.title }}</h5>
|
||||
<div class="docs-feedback__buttons">
|
||||
<a href="{{ .Params.positiveButton.url }}" class="button button_outlined button_sm docs-feedback__button">
|
||||
<img src="{{ .Params.positiveButton.icon.src }}" alt="{{ .Params.positiveButton.icon.alt }}">
|
||||
{{ .Params.positiveButton.text }}
|
||||
</a>
|
||||
<a href="{{ .Params.negativeButton.url }}" class="button button_outlined button_sm docs-feedback__button">
|
||||
<img src="{{ .Params.negativeButton.icon.src }}" alt="{{ .Params.negativeButton.icon.alt }}">
|
||||
{{ .Params.negativeButton.text }}
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
{{end }}
|
||||
@@ -0,0 +1,21 @@
|
||||
{{ with (.Site.GetPage "/headless/footer") }}
|
||||
<footer class="docs-footer w-100 py-0 pt-0 pb-4 pb-xl-0">
|
||||
<div class="docs-footer__cta">
|
||||
<h4>{{ .Params.question }}</h4>
|
||||
<a href="{{ .Params.questionButton.url }}" class="button button_outlined button_sm" target="_blank">
|
||||
{{ .Params.questionButton.text }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="docs-footer__bottom">
|
||||
<div class="docs-footer__bottom-content">
|
||||
<span>{{ .Params.copyright }}</span>
|
||||
<div class="footer__bottom-links">
|
||||
<a href="{{ .Params.termsLink.url }}">{{ .Params.termsLink.text }}</a>
|
||||
<a href="{{ .Params.privacyLink.url }}">{{ .Params.privacyLink.text }}</a>
|
||||
<a href="{{ .Params.impressumLink.url }}">{{ .Params.impressumLink.text }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,145 @@
|
||||
<header class="docs-header">
|
||||
{{ $partition := partial "get-partition.html" (dict "page" .) }}
|
||||
{{ with (.Site.GetPage "/headless/docs-header") }}
|
||||
<div class="main-menu z-5">
|
||||
<a href="{{ .Params.logoLink }}">
|
||||
{{ partial "logo.html" . }}
|
||||
</a>
|
||||
|
||||
<div class="d-flex d-xl-none justify-content-end align-items-center gap-4">
|
||||
<div class="d-block d-xl-none">
|
||||
{{ partial "theme-switch" . }}
|
||||
</div>
|
||||
<button type="button" class="main-menu__trigger">{{ partial "svg" "hamburger-menu-white.svg" }}</button>
|
||||
</div>
|
||||
|
||||
<ul class="main-menu__links">
|
||||
{{ range $index, $element := .Params.menuItems }}
|
||||
<li class="main-menu__item">
|
||||
{{ if .url }}
|
||||
<a
|
||||
class="menu-link {{- if eq (lower .name) $partition }}active{{- end -}}"
|
||||
href="{{ .url }}"
|
||||
{{ if (eq $index 3) }}target="_blank"{{ end }}
|
||||
>
|
||||
{{ .name }}
|
||||
</a>
|
||||
{{ else }}
|
||||
<span>{{ .name }}</span>
|
||||
{{ end }}
|
||||
|
||||
{{ if .subMenuItems }}
|
||||
<ul class="main-menu__submenu">
|
||||
{{ if .url }}
|
||||
<li class="main-menu__section-link">
|
||||
<a class="link link_neutral link_sm" href="{{ .url }}">
|
||||
{{ .name }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ range .subMenuItems }}
|
||||
<li class="main-menu__submenu-item">
|
||||
<a
|
||||
href="{{ .url }}"
|
||||
{{ if strings.HasPrefix .url "http" }}target="_blank" rel="noopener noreferrer nofollow"{{ end }}
|
||||
>
|
||||
<img src="/img/menu/{{ .icon }}" draggable="false" />
|
||||
<span>{{ .name }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
<div class="main-menu__buttons">
|
||||
<div class="main-menu__buttons-input">
|
||||
<button
|
||||
class="qdr-search-input-btn q-input input_md input_light-bg"
|
||||
type="button"
|
||||
name="search"
|
||||
data-target="#searchModal"
|
||||
>
|
||||
Search
|
||||
</button>
|
||||
</div>
|
||||
{{ partial "theme-switch" . }}
|
||||
<a data-metric-loc="nav" href="{{ .Params.logIn.url }}" class="menu-link mx-3" target="_blank"
|
||||
>{{ .Params.logIn.text }}</a
|
||||
>
|
||||
<a
|
||||
data-metric-loc="nav"
|
||||
href="{{ .Params.startFree.url }}"
|
||||
class="button button_contained button_sm"
|
||||
target="_blank"
|
||||
>
|
||||
{{ .Params.startFree.text }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="menu-mobile">
|
||||
<div class="menu-mobile__header">
|
||||
{{ partial "logo.html" . }}
|
||||
<button type="button" class="menu-mobile__close">{{ partial "svg" "close.svg" }}</button>
|
||||
</div>
|
||||
<ul class="menu-mobile__items">
|
||||
{{ range .Params.menuItems }}
|
||||
<li class="menu-mobile__item" data-path="{{ .id }}">
|
||||
<div class="menu-mobile__item-content">
|
||||
{{ if and (not .subMenuItems) .url }}
|
||||
<a href="{{ .url }}">
|
||||
{{ .name }}
|
||||
</a>
|
||||
{{ else }}
|
||||
{{ .name }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .subMenuItems }}
|
||||
<button type="button" class="menu-mobile__expand">{{ partial "svg" "arrow-sm-down.svg" }}</button>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ if .subMenuItems }}
|
||||
<ul class="menu-mobile__subitems">
|
||||
{{ if .url }}
|
||||
<li class="menu-mobile__section-link">
|
||||
<a class="link link_neutral link_sm" href="{{ .url }}">
|
||||
{{ .name }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ range .subMenuItems }}
|
||||
<a href="{{ .url }}">
|
||||
<li class="menu-mobile__subitem">
|
||||
<span style="background-image: url(/img/menu/{{ .icon }})"> </span>
|
||||
{{ .name }}
|
||||
</li>
|
||||
</a>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
<div class="menu-mobile__controls">
|
||||
<a
|
||||
data-metric-loc="mobile_nav"
|
||||
href="{{ .Params.logIn.url }}"
|
||||
class="button button_outlined button_lg menu-mobile__login"
|
||||
target="_blank"
|
||||
>
|
||||
{{ .Params.logIn.text }}
|
||||
</a>
|
||||
<a
|
||||
data-metric-loc="mobile_nav"
|
||||
href="{{ .Params.startFree.url }}"
|
||||
class="button button_contained button_lg"
|
||||
target="_blank"
|
||||
>
|
||||
{{ .Params.startFree.text }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</header>
|
||||
@@ -0,0 +1,25 @@
|
||||
{{ $context := . }}
|
||||
<section class="docs-core__data">
|
||||
<div class="d-flex justify-content-between align-items-center flex-wrap column-gap-4 mb-5 mb-lg-3">
|
||||
<div>
|
||||
<h2>{{ .title }}</h2>
|
||||
<p class="mb-3">{{ .description }}</p>
|
||||
</div>
|
||||
{{ if .button }}
|
||||
<a
|
||||
href="{{ .button.url }}"
|
||||
{{ if strings.HasPrefix .button.url "https://" }}target="_blank"{{ end }}
|
||||
class="button button_outlined button_sm"
|
||||
>
|
||||
{{ .button.text }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="row g-4 g-lg-3">
|
||||
{{ range $index, $element := .cards }}
|
||||
{{ $cardsPerRow := $context.cardsPerRow | default 3 }}
|
||||
{{ partial $context.cardsPartial (dict "card" $element "cardsPerRow" $cardsPerRow) }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,32 +1,37 @@
|
||||
{{ $currentNode := . }}
|
||||
<div class="col-12 col-xl-2">
|
||||
<div class="docs-menu">
|
||||
<div id="sidebar-toggle" class="docs-menu__header">
|
||||
<h2>Docs Menu</h2>
|
||||
<button type="button" class="docs-menu__button">{{ partial "svg" "arrow-sm-down-white.svg" }}</button>
|
||||
{{ $partition := .partition }}
|
||||
|
||||
{{ $currentNode := .context }}
|
||||
<div class="docs-menu">
|
||||
<div id="sidebar-toggle" class="docs-menu__header">
|
||||
<h2>Docs Menu</h2>
|
||||
<button type="button" class="docs-menu__button">{{ partial "svg" "arrow-sm-down-white.svg" }}</button>
|
||||
</div>
|
||||
<div id="sidebar" class="docs-menu__content">
|
||||
<div class="docs-menu__input">
|
||||
<button
|
||||
class="qdr-search-input-btn q-input input_md input_light-bg"
|
||||
type="button"
|
||||
name="search"
|
||||
data-target="#searchModal"
|
||||
>
|
||||
Search
|
||||
</button>
|
||||
</div>
|
||||
<div id="sidebar" class="docs-menu__content">
|
||||
<div class="docs-menu__input">
|
||||
<button
|
||||
class="qdr-search-input-btn q-input input_md input_light-bg"
|
||||
type="button"
|
||||
name="search"
|
||||
data-target="#searchModal"
|
||||
>
|
||||
Search
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{{ $subject := site.GetPage "documentation" }}
|
||||
{{ $subject := site.GetPage "documentation" }}
|
||||
|
||||
|
||||
<nav class="docs-menu__links">
|
||||
{{ range $subject.Pages }}
|
||||
<nav class="docs-menu__links">
|
||||
{{ range $subject.Pages }}
|
||||
{{ if and (eq .Params.partition $partition) (not .Params.hideInSidebar) }}
|
||||
{{ if (eq .Params.type "delimiter") }}
|
||||
<h3 class="docs-menu__links-title">{{ .Title }}</h3>
|
||||
{{ else }}
|
||||
{{ if and (.IsPage) (not .Params.hideInSidebar) }}
|
||||
<div class="docs-menu__links-group {{ if eq .File.UniqueID $currentNode.File.UniqueID }}active{{ end }}">
|
||||
<div
|
||||
class="docs-menu__links-group {{ if eq .File.UniqueID $currentNode.File.UniqueID }}active{{ end }}
|
||||
{{- if (eq .Params.type "external-link") }}external-link{{ end -}} "
|
||||
>
|
||||
<div class="docs-menu__links-group-heading">
|
||||
<a
|
||||
href="{{ if (eq .Params.type "external-link") }}
|
||||
@@ -37,9 +42,6 @@
|
||||
{{ if (eq .Params.type "external-link") }}target="_blank"{{ end }}
|
||||
>
|
||||
{{ .Title }}
|
||||
{{ if (eq .Params.type "external-link") }}
|
||||
{{ partial "svg" "external-link.svg" }}
|
||||
{{ end }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -102,7 +104,7 @@
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</nav>
|
||||
</div>
|
||||
{{ end }}
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
{{- $page := .page -}}
|
||||
{{- $partition := $page.Params.partition -}}
|
||||
{{- if not $partition -}}
|
||||
{{- if $page.Parent -}}
|
||||
{{- $partition = partial "get-partition.html" (dict "page" $page.Parent) -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- return $partition -}}
|
||||
@@ -31,13 +31,13 @@
|
||||
<script src="{{ $filterChartJs.RelPermalink }}"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ if eq .Section "documentation" }}
|
||||
{{ if in (slice "docs" "documentation") .Section }}
|
||||
{{ $documentationJs := resources.Get "/js/documentation.js" | js.Build | minify | resources.Fingerprint "sha512" }}
|
||||
<script src="{{ $documentationJs.RelPermalink }}"></script>
|
||||
{{ end }}
|
||||
|
||||
<!--Segment-->
|
||||
{{ if .Site.Params.segmentWriteKey }}
|
||||
{{ if and hugo.IsProduction .Site.Params.segmentWriteKey }}
|
||||
{{ $segmentJs := resources.Get "js/segment-setup.js" | js.Build (dict "params" (dict "segmentWriteKey" .Site.Params.segmentWriteKey "gaMeasurementId" .Site.GoogleAnalytics)) | minify | resources.Fingerprint "sha512" }}
|
||||
<script src="{{ $segmentJs.RelPermalink }}?v=eu"></script>
|
||||
{{ end }}
|
||||
|
||||
@@ -63,17 +63,17 @@
|
||||
</script>
|
||||
{{ end }}
|
||||
|
||||
{{ if or (eq .Section "documentation") (and (not .IsPage) (eq .Section "blog")) }}
|
||||
{{ if or (in (slice "docs" "documentation") .Section) (and (not .IsPage) (eq .Section "blog")) }}
|
||||
{{ $pageSearchJs := resources.Get "/js/search/search.js" | js.Build | minify | resources.Fingerprint "sha512" }}
|
||||
<script src="{{ $pageSearchJs.RelPermalink }}" type="module"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ if and .IsPage (in (slice "blog" "articles" "benchmarks" "documentation") .Section) }}
|
||||
{{ if and .IsPage (in (slice "blog" "articles" "benchmarks" "docs" "documentation") .Section) }}
|
||||
{{ $pageSearchScrollJs := resources.Get "/js/search/scroll.js" | js.Build | minify | resources.Fingerprint "sha512" }}
|
||||
<script src="{{ $pageSearchScrollJs.RelPermalink }}"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ if in (slice "blog" "articles" "benchmarks" "documentation") .Section }}
|
||||
{{ if in (slice "blog" "articles" "benchmarks" "docs" "documentation") .Section }}
|
||||
<!--popper.js for bootstrap-->
|
||||
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.2/dist/umd/popper.min.js"></script>
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
<script src="{{ $anchorJs.RelPermalink }}"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ if or (eq .Section "blog") (eq .Section "documentation") }}
|
||||
{{ if or (eq .Section "blog") (eq .Section "docs") (eq .Section "documentation") }}
|
||||
<script>
|
||||
document.addEventListener('keydown', function (event) {
|
||||
if ((event.metaKey || event.ctrlKey) && event.key === 'k') {
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{{ if not .Params.hideTOC }}
|
||||
<div class="col-12 col-xl-2">
|
||||
{{ if gt (.TableOfContents | len) 34 }}
|
||||
<div class="table-of-contents">
|
||||
<h2 class="table-of-contents__title">{{ .Params.title }}</h2>
|
||||
<p class="table-of-contents__head">On this page:</p>
|
||||
|
||||
{{ .TableOfContents }}
|
||||
|
||||
@@ -10,19 +9,17 @@
|
||||
<ul class="table-of-contents__external-links">
|
||||
<li class="table-of-contents__link">
|
||||
<a href="{{ .Site.Params.githubDocPrefix }}{{ path.Clean .File.Path }}" target="_blank">
|
||||
{{ partial "svg" "github-red.svg" }}
|
||||
{{ partial "svg" "github.svg" }}
|
||||
Edit on Github
|
||||
</a>
|
||||
</li>
|
||||
<li class="table-of-contents__link">
|
||||
<a href="{{ .Site.Params.githubIssueLink }}" target="_blank">
|
||||
{{ partial "svg" "bug-red.svg" }}
|
||||
{{ partial "svg" "bug.svg" }}
|
||||
Create an issue
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{ partial "feedback" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
@@ -5,7 +5,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "^5.3.2",
|
||||
"qdrant-page-search": "^1.0.8",
|
||||
"qdrant-page-search": "^1.0.10",
|
||||
"@splidejs/splide": "^4.1.4",
|
||||
"clipboard": "^2.0.11",
|
||||
"anchor-js": "^5.0.0"
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"anchor-js": "^5.0.0",
|
||||
"bootstrap": "^5.3.2",
|
||||
"clipboard": "^2.0.11",
|
||||
"qdrant-page-search": "^1.0.8"
|
||||
"qdrant-page-search": "^1.0.10"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "^7.23.9",
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<svg width="14" height="15" viewBox="0 0 14 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="Menu/Blog">
|
||||
<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M0 1.8125C0 1.57088 0.195875 1.375 0.4375 1.375H4.8125C5.05412 1.375 5.25 1.57088 5.25 1.8125V6.1875C5.25 6.42912 5.05412 6.625 4.8125 6.625H0.4375C0.195875 6.625 0 6.42912 0 6.1875V1.8125ZM0.875 2.25V5.75H4.375V2.25H0.875ZM7 2.6875C7 2.44588 7.19588 2.25 7.4375 2.25H13.5625C13.8041 2.25 14 2.44588 14 2.6875C14 2.92912 13.8041 3.125 13.5625 3.125H7.4375C7.19588 3.125 7 2.92912 7 2.6875ZM7.4375 5.75C7.19588 5.75 7 5.94588 7 6.1875C7 6.42912 7.19588 6.625 7.4375 6.625H13.5625C13.8041 6.625 14 6.42912 14 6.1875C14 5.94588 13.8041 5.75 13.5625 5.75H7.4375ZM0 9.6875C0 9.44588 0.195875 9.25 0.4375 9.25H13.5625C13.8041 9.25 14 9.44588 14 9.6875C14 9.92912 13.8041 10.125 13.5625 10.125H0.4375C0.195875 10.125 0 9.92912 0 9.6875ZM0.4375 12.75C0.195875 12.75 0 12.9459 0 13.1875C0 13.4291 0.195875 13.625 0.4375 13.625H13.5625C13.8041 13.625 14 13.4291 14 13.1875C14 12.9459 13.8041 12.75 13.5625 12.75H0.4375Z" fill="#8547FF"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_6269_1540)">
|
||||
<path d="M16 9.83331V8.49998H13.9347C13.79 7.33465 13.3947 6.24065 12.8 5.31065L14.276 3.83265L13.3327 2.89065L11.9633 4.26198C11.7233 4.01398 11.4667 3.78798 11.1913 3.58598C11.0967 3.25665 10.9507 2.95398 10.7673 2.67598L11.8053 1.63798L10.8627 0.695312L9.82867 1.72931C9.29867 1.37798 8.672 1.16665 8 1.16665C7.328 1.16665 6.70133 1.37798 6.172 1.72931L5.138 0.695312L4.19533 1.63798L5.23333 2.67598C5.05 2.95331 4.904 3.25598 4.80933 3.58465C4.534 3.78665 4.27733 4.01398 4.03667 4.26198L2.66733 2.89065L1.724 3.83265L3.2 5.30998C2.60533 6.23998 2.21 7.33465 2.06533 8.49998H0V9.83331H2.01467C2.07333 11.276 2.50533 12.6026 3.204 13.688L1.724 15.166L2.666 16.1093L4.036 14.7413C4.93733 15.67 6.07667 16.288 7.33333 16.452V6.49998H8.66667V16.452C9.92333 16.2873 11.0627 15.67 11.964 14.7413L13.334 16.1093L14.276 15.166L12.796 13.688C13.4947 12.602 13.9267 11.2753 13.9853 9.83331H16Z" fill="#F0F3FA"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_6269_1540">
|
||||
<rect width="16" height="16" fill="white" transform="translate(0 0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,3 @@
|
||||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M19.6512 5.73421C18.217 5.07827 16.6939 4.6002 15.1041 4.33337C14.9038 4.67803 14.6815 5.14497 14.5259 5.51187C12.8349 5.26726 11.1561 5.26726 9.48839 5.51187C9.33274 5.14497 9.09925 4.67803 8.91024 4.33337C7.30931 4.6002 5.78616 5.07827 4.36198 5.73421C1.48247 9.98121 0.704217 14.1281 1.09334 18.2195C3.0056 19.6091 4.85117 20.4541 6.66449 21.0101C7.1092 20.4097 7.50945 19.7649 7.8541 19.0866C7.19815 18.8421 6.57555 18.5419 5.97519 18.1861C6.13084 18.075 6.28649 17.9527 6.43103 17.8304C10.0554 19.487 13.9811 19.487 17.5611 17.8304C17.7167 17.9527 17.8612 18.075 18.0169 18.1861C17.4165 18.5419 16.7939 18.8421 16.1379 19.0866C16.4826 19.7649 16.8828 20.4097 17.3276 21.0101C19.1397 20.4541 20.9965 19.6091 22.8987 18.2195C23.3768 13.4834 22.1415 9.36977 19.6512 5.73421ZM8.3544 15.6957C7.26483 15.6957 6.37541 14.7063 6.37541 13.4944C6.37541 12.2826 7.2426 11.2931 8.3544 11.2931C9.45504 11.2931 10.3556 12.2826 10.3333 13.4944C10.3333 14.7063 9.45504 15.6957 8.3544 15.6957ZM15.6599 15.6957C14.5703 15.6957 13.6798 14.7063 13.6798 13.4944C13.6798 12.2826 14.5481 11.2931 15.6599 11.2931C16.7606 11.2931 17.6611 12.2826 17.6388 13.4944C17.6388 14.7063 16.7717 15.6957 15.6599 15.6957Z" stroke="#8547FF" stroke-width="2" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_6269_955)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8 0.700012C3.6 0.700012 0 4.30001 0 8.70001C0 12.2333 2.26667 15.2333 5.46667 16.3C5.86667 16.3667 6 16.1 6 15.9C6 15.7 6 15.2333 6 14.5667C3.8 15.0333 3.33333 13.5 3.33333 13.5C3 12.5667 2.46667 12.3 2.46667 12.3C1.66667 11.8333 2.46667 11.8333 2.46667 11.8333C3.26667 11.9 3.66667 12.6333 3.66667 12.6333C4.4 13.8333 5.53333 13.5 6 13.3C6.06667 12.7667 6.26667 12.4333 6.53333 12.2333C4.73333 12.0333 2.86667 11.3667 2.86667 8.30001C2.86667 7.43335 3.2 6.70001 3.66667 6.16668C3.66667 5.90001 3.33333 5.10001 3.8 4.03335C3.8 4.03335 4.46667 3.83335 6 4.83335C6.66667 4.63335 7.33333 4.56668 8 4.56668C8.66667 4.56668 9.33333 4.63335 10 4.83335C11.5333 3.76668 12.2 4.03335 12.2 4.03335C12.6667 5.16668 12.3333 5.96668 12.2667 6.16668C12.8 6.70001 13.0667 7.43335 13.0667 8.30001C13.0667 11.3667 11.2 12.0333 9.4 12.2333C9.66667 12.5 9.93333 12.9667 9.93333 13.7C9.93333 14.7667 9.93333 15.6333 9.93333 15.9C9.93333 16.1 10.0667 16.3667 10.4667 16.3C13.6667 15.2333 15.9333 12.2333 15.9333 8.70001C16 4.30001 12.4 0.700012 8 0.700012Z" fill="#F0F3FA"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_6269_955">
|
||||
<rect width="16" height="16" fill="white" transform="translate(0 0.5)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_5875_33918)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.51444 3.84818C8.19485 -0.832231 15.7797 -0.838058 20.4673 3.8307C20.4712 3.83436 20.475 3.83806 20.4788 3.84179C20.481 3.84394 20.4832 3.84609 20.4853 3.84826C20.4913 3.85422 20.4972 3.86024 20.5029 3.86631C25.1651 8.548 25.1651 16.119 20.5028 20.8006C20.4971 20.8066 20.4912 20.8126 20.4853 20.8185C20.4794 20.8244 20.4735 20.8302 20.4675 20.8359C15.7798 25.5048 8.1949 25.499 3.51444 20.8186C-1.17181 16.1323 -1.17181 8.53443 3.51444 3.84818ZM4.25673 18.6627C1.24741 14.9903 1.24741 9.67649 4.25673 6.00406L7.10894 8.85627C5.63015 10.931 5.63015 13.7357 7.10894 15.8105L4.25673 18.6627ZM8.52323 17.2246L5.671 20.0769C9.3434 23.0856 14.6567 23.0854 18.3289 20.0763L15.4769 17.2243C13.4023 18.7029 10.5979 18.703 8.52323 17.2246ZM16.891 15.81L19.7431 18.6621C22.7517 14.9899 22.7517 9.6769 19.7431 6.00471L16.891 8.85679C18.3693 10.9313 18.3693 13.7354 16.891 15.81ZM15.4769 7.4425L18.3289 4.59044C14.6567 1.58133 9.3434 1.58116 5.671 4.58991L8.52324 7.44214C10.5979 5.96375 13.4023 5.96387 15.4769 7.4425ZM9.17139 15.1618C7.60931 13.5997 7.60931 11.0671 9.17139 9.50498C10.7335 7.9429 13.2661 7.9429 14.8282 9.50498C16.3903 11.0671 16.3903 13.5997 14.8282 15.1618C13.2661 16.7239 10.7335 16.7239 9.17139 15.1618Z" fill="#2F6FF0"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_5875_33918">
|
||||
<rect width="24" height="24" fill="white" transform="translate(0 0.333374)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_6269_1350)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.75 0C0.335786 0 0 0.335786 0 0.75V9C0 9.41421 0.335786 9.75 0.75 9.75H3.92715L6.02643 17.4473C6.11542 17.7736 6.41179 18 6.75 18C7.54565 18 8.30871 17.6839 8.87132 17.1213C9.43393 16.5587 9.75 15.7956 9.75 15V11.25H14.625C15.0575 11.25 15.4849 11.1564 15.8779 10.9758C16.2709 10.7951 16.6202 10.5317 16.9018 10.2034C17.1834 9.87514 17.3907 9.48987 17.5095 9.074C17.6283 8.65813 17.6558 8.22148 17.59 7.794L16.7823 2.544C16.6734 1.83626 16.315 1.19074 15.7718 0.724183C15.2286 0.257617 14.5364 0.000750348 13.8203 0H0.75ZM3.75 1.5H1.5V8.25H3.75V1.5ZM5.25 8.89956V1.5H13.8191C14.177 1.50046 14.5229 1.62888 14.7945 1.86209C15.0661 2.09537 15.2453 2.41812 15.2997 2.772L16.1075 8.022C16.1403 8.23572 16.1266 8.45408 16.0672 8.662C16.0078 8.86994 15.9041 9.06257 15.7633 9.2267C15.6225 9.39083 15.4479 9.52257 15.2514 9.6129C15.0549 9.70321 14.8412 9.74998 14.625 9.75H9C8.58579 9.75 8.25 10.0858 8.25 10.5V15C8.25 15.3978 8.09196 15.7794 7.81066 16.0607C7.66247 16.2089 7.48645 16.3228 7.2949 16.3975L5.25 8.89956Z" fill="#F0F3FA"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_6269_1350">
|
||||
<rect width="18" height="18" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_6269_1346)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.75 0C6.41179 0 6.11542 0.226366 6.02643 0.552662L3.92715 8.25H0.75C0.335786 8.25 0 8.58579 0 9V17.25C0 17.6642 0.335786 18 0.75 18H13.8203C14.5364 17.9992 15.2286 17.7424 15.7718 17.2758C16.315 16.8093 16.6734 16.1638 16.7823 15.456L17.59 10.2061C17.6558 9.77857 17.6283 9.34187 17.5095 8.926C17.3907 8.51012 17.1834 8.12485 16.9018 7.7966C16.6202 7.46834 16.2709 7.20485 15.8779 7.02421C15.4849 6.84356 15.0575 6.75002 14.625 6.75H9.75V3C9.75 2.20435 9.43393 1.44129 8.87132 0.87868C8.30871 0.31607 7.54565 0 6.75 0ZM3.75 16.5V9.75H1.5V16.5H3.75ZM5.25 9.10044L7.2949 1.60247C7.48645 1.67716 7.66246 1.79115 7.81066 1.93934C8.09196 2.22064 8.25 2.60217 8.25 3V7.5C8.25 7.91421 8.58579 8.25 9 8.25H14.625C14.8412 8.25001 15.0549 8.29678 15.2514 8.3871C15.4479 8.47743 15.6225 8.60917 15.7633 8.7733C15.9041 8.93743 16.0078 9.13006 16.0672 9.338C16.1266 9.54592 16.1403 9.76422 16.1075 9.97795L15.2997 15.2279C15.2453 15.5818 15.0661 15.9046 14.7945 16.1379C14.5229 16.3712 14.1768 16.4996 13.8187 16.5H5.25V9.10044Z" fill="#F0F3FA"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_6269_1346">
|
||||
<rect width="18" height="18" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,12 @@
|
||||
<svg width="294" height="240" viewBox="0 0 294 240" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g filter="url(#filter0_f_5875_34159)">
|
||||
<circle cy="240" r="80" fill="#0040A1"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_f_5875_34159" x="-293.333" y="-53.3333" width="586.667" height="586.667" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<feGaussianBlur stdDeviation="106.667" result="effect1_foregroundBlur_5875_34159"/>
|
||||
</filter>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 601 B |
@@ -0,0 +1,12 @@
|
||||
<svg width="294" height="240" viewBox="0 0 294 240" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g filter="url(#filter0_f_5875_34158)">
|
||||
<circle cx="294" r="80" fill="#0040A1"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_f_5875_34158" x="0.666656" y="-293.333" width="586.667" height="586.667" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
|
||||
<feGaussianBlur stdDeviation="106.667" result="effect1_foregroundBlur_5875_34158"/>
|
||||
</filter>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 601 B |
|
After Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 85 KiB |