mirror of
https://github.com/qdrant/landing_page.git
synced 2026-09-25 22:18:30 +02:00
@@ -423,7 +423,7 @@ For ease of use, as one shouldn't need a machine learning degree to use a new fe
|
||||
|
||||
What you need is a Qdrant collection, an idea of which feedback model you'd like to use to guide your retriever, and, optionally, a small set of use case-specific queries (50–300).
|
||||
|
||||
We provide `QdrantRetriever` (using our [Free and Paid Tier Cloud Inference](https://qdrant.tech/documentation/cloud/inference/) or [FastEmbed](https://qdrant.tech/documentation/fastembed/) locally) and `FastembedFeedback` with bi-encoders, late interaction models, and cross-encoders as feedback model options.
|
||||
We provide `QdrantRetriever` (using our [Cloud Inference](https://qdrant.tech/documentation/cloud/inference/) or [FastEmbed](https://qdrant.tech/documentation/fastembed/) locally) and `FastembedFeedback` with bi-encoders, late interaction models, and cross-encoders as feedback model options.
|
||||
|
||||
That said, you can define your own retrievers and feedback models, whatever works best for your data modality and use case.
|
||||
|
||||
|
||||
@@ -0,0 +1,266 @@
|
||||
---
|
||||
title: Compare all Qdrant Cloud capabilities
|
||||
description: A complete overview of the features available in each tier. See what's included in every plan and choose the setup that fits your use case and growth stage.
|
||||
build:
|
||||
render: always
|
||||
badge:
|
||||
text: For Hybrid/Private cloud
|
||||
linkText: Speak to Our Engineers
|
||||
url: /contact-us/
|
||||
button:
|
||||
text: Talk to our Team
|
||||
url: /contact-us/
|
||||
link:
|
||||
text: Try our Pricing Calculator
|
||||
url: /pricing/#calculator
|
||||
tiers:
|
||||
- id: oss
|
||||
name: OSS
|
||||
highlight: false
|
||||
bold: false
|
||||
- id: free
|
||||
name: Free Tier
|
||||
highlight: false
|
||||
bold: false
|
||||
- id: standard
|
||||
name: Standard Tier
|
||||
highlight: true
|
||||
bold: true
|
||||
- id: premium
|
||||
name: Premium Tier
|
||||
highlight: false
|
||||
bold: true
|
||||
sections:
|
||||
- name: Core Vector Search Capabilities
|
||||
features:
|
||||
- name: Vector Similarity Search
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Recommendations & Discovery
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Quantization
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Hybrid Search
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Multi Vector Support
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Sparse Vector Support
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: GPU Indexing
|
||||
oss: true
|
||||
free: false
|
||||
standard: false
|
||||
premium: false
|
||||
- name: Cloud Inference
|
||||
oss: false
|
||||
free: Only free models
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Data Modeling & Storage
|
||||
features:
|
||||
- name: Multi-Tenancy
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Deployment & Enterprise
|
||||
features:
|
||||
- name: Cloud Providers
|
||||
oss: Depends on chosen infrastructure
|
||||
free: AWS, Azure, GCP
|
||||
standard: AWS, Azure, GCP
|
||||
premium: AWS, Azure, GCP
|
||||
- name: Uptime SLA
|
||||
oss: false
|
||||
free: false
|
||||
standard: "99.5"
|
||||
premium: "99.9"
|
||||
- name: Developer Experience
|
||||
features:
|
||||
- name: Database Web UI
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Multi-Cluster Management UI
|
||||
oss: false
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Automation
|
||||
oss: false
|
||||
free: API, Terraform, Pulumi
|
||||
standard: API, Terraform, Pulumi
|
||||
premium: API, Terraform, Pulumi
|
||||
- name: Querying / Ranking
|
||||
features:
|
||||
- name: Advanced Payload Filtering (Incl. Geo and Full-Text)
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Complex Payload Support
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Multi-Staged Queries
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Score Boosting
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Scalability & Operations
|
||||
features:
|
||||
- name: Vertical Up & Downscaling
|
||||
oss: No resource usage safe guards
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Horizontal Up & Downscaling
|
||||
oss: No automated shard rebalancing
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Highly Availabe Setup
|
||||
oss: true
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Disk Performance Tiers
|
||||
oss: Depends on chosen infrastructure
|
||||
free: false
|
||||
standard: (AWS only)
|
||||
premium: (AWS only)
|
||||
- name: Shard Splitting
|
||||
oss: false
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Zero Downtime Upgrades
|
||||
oss: Custom automation
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Optimized Cluster Restarts
|
||||
oss: false
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Monitoring & Alerting
|
||||
oss: Manual setup
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Backups & Disaster Recovery
|
||||
oss: Custom automation
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Dedicated Engineering Support During Migration
|
||||
oss: false
|
||||
free: false
|
||||
standard: false
|
||||
premium: true
|
||||
- name: Collection Snapshots
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Security & Compliance
|
||||
features:
|
||||
- name: Create New Clusters from Backups
|
||||
oss: Custom automation
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: JWT Based RBAC
|
||||
oss: true
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Built-in API Key Revocation
|
||||
oss: false
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: SOC2 Type 2
|
||||
oss: false
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: HIPAA
|
||||
oss: false
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Encryption at Rest and in Transit
|
||||
oss: Depends on chosen infrastructure
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Disk Encryption with Custom Key
|
||||
oss: Depends on chosen infrastructure
|
||||
free: false
|
||||
standard: false
|
||||
premium: (AWS only)
|
||||
- name: Enterprise SSO Authentication
|
||||
oss: false
|
||||
free: false
|
||||
standard: false
|
||||
premium: true
|
||||
- name: Private VPC Links
|
||||
oss: false
|
||||
free: false
|
||||
standard: false
|
||||
premium: true
|
||||
- name: Support Level
|
||||
oss: Community
|
||||
free: Community
|
||||
standard: Standard
|
||||
premium: Premium
|
||||
- name: Support Response Times
|
||||
oss: false
|
||||
free: Best effort
|
||||
standard: 10x5
|
||||
premium: 24x7
|
||||
ctas:
|
||||
- tier: oss
|
||||
text: Start Free
|
||||
url: https://cloud.qdrant.io
|
||||
contained: false
|
||||
- tier: free
|
||||
text: Start Free
|
||||
url: https://cloud.qdrant.io
|
||||
contained: false
|
||||
- tier: standard
|
||||
text: Deploy on Cloud
|
||||
url: https://cloud.qdrant.io
|
||||
contained: true
|
||||
- tier: premium
|
||||
text: Deploy on Cloud
|
||||
url: /contact-us/
|
||||
contained: false
|
||||
sitemapExclude: true
|
||||
---
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
titleFirstPart: Not sure which plan is right for you?
|
||||
titleSecondPart: Check out our pricing calculator.
|
||||
title: Not sure how large your cluster needs to be?
|
||||
linkPrefix: Try our
|
||||
link:
|
||||
url: https://cloud.qdrant.io/calculator
|
||||
text: Pricing Calculator
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Engines Ready. Awaiting Your Command.
|
||||
description: Cloud Quickstart - spin up a cluster in seconds.
|
||||
button:
|
||||
text: Start Building for Free
|
||||
url: https://cloud.qdrant.io
|
||||
sitemapExclude: true
|
||||
---
|
||||
@@ -1,79 +1,100 @@
|
||||
---
|
||||
cards:
|
||||
- id: 0
|
||||
popular: true
|
||||
title: Managed Cloud
|
||||
price: Starting at $0
|
||||
description: Starts with 1GB free cluster, no credit card required.
|
||||
button:
|
||||
text: Start Free
|
||||
url: https://cloud.qdrant.io
|
||||
contained: true
|
||||
featureDescription: Scale your production solutions without deployment and upkeep.
|
||||
featureLink:
|
||||
text: Calculate your usage.
|
||||
url: https://cloud.qdrant.io/calculator
|
||||
features:
|
||||
- id: 0
|
||||
content: 1GB free forever cluster. No credit card required.
|
||||
- id: 1
|
||||
content: Fully managed with central cluster management
|
||||
- id: 2
|
||||
content: Multiple cloud providers and regions (AWS, GCP, Azure)
|
||||
- id: 3
|
||||
content: Horizontal & vertical scaling
|
||||
- id: 4
|
||||
content: Central monitoring, log management and alerting
|
||||
- id: 5
|
||||
content: High availability, auto-healing
|
||||
- id: 6
|
||||
content: Backup & disaster recovery
|
||||
- id: 7
|
||||
content: Zero-downtime upgrades
|
||||
- id: 8
|
||||
content: Unlimited users
|
||||
- id: 9
|
||||
content: Standard support and uptime SLAs, can be upgraded to Premium
|
||||
# - id: 10
|
||||
# content: Can be upgraded to premium support plan
|
||||
- id: 1
|
||||
popular: false
|
||||
title: Hybrid Cloud
|
||||
price: Custom
|
||||
description: Price on request.
|
||||
button:
|
||||
text: Contact Us
|
||||
url: /contact-us/
|
||||
contained: false
|
||||
featureDescription: Bring your own cluster from any cloud provider, on-premise infrastructure, or edge locations and connect them to the managed cloud.
|
||||
features:
|
||||
- id: 0
|
||||
content: All the benefits of Qdrant Cloud
|
||||
- id: 1
|
||||
content: Security, data isolation, optimal latency
|
||||
- id: 2
|
||||
content: Use the Managed Cloud Central Cluster Management
|
||||
- id: 3
|
||||
content: Standard support and uptime SLAs, can be upgraded to Premium
|
||||
# minPrice: <span>*</span>Min $99 / month
|
||||
- id: 2
|
||||
popular: false
|
||||
title: Private Cloud
|
||||
price: Custom
|
||||
description: Price on request.
|
||||
button:
|
||||
text: Contact Us
|
||||
url: /contact-us/
|
||||
contained: false
|
||||
featureDescription: Deploy Qdrant fully on premise for maximum control and data sovereignty.
|
||||
features:
|
||||
- id: 0
|
||||
content: All the benefits of Hybrid Cloud
|
||||
- id: 1
|
||||
content: Security, data isolation, optimal latency
|
||||
- id: 2
|
||||
content: Manage Qdrant database clusters on your infrastructure, in the cloud, on-premise at the edge, even fully air-gapped without a connection to Qdrant Cloud
|
||||
- id: 3
|
||||
content: Premium Support Plan
|
||||
tabs:
|
||||
- id: managed
|
||||
label: Managed
|
||||
active: true
|
||||
tiers:
|
||||
- id: free
|
||||
title: Free Tier
|
||||
pricing: Free forever
|
||||
pricingNote: (No credit card required)
|
||||
target: For testing, and prototypes
|
||||
features:
|
||||
- Single Node Cluster
|
||||
- 0.5 vCPU / 1GB RAM/ 4 GB Disk.
|
||||
- Free Cloud Inference With Selected Models
|
||||
cta:
|
||||
text: Start Free
|
||||
url: https://cloud.qdrant.io
|
||||
style: outlined
|
||||
- id: paid
|
||||
title: Standard Tier
|
||||
pricing: Usage-based pricing
|
||||
target: For production workloads and scaling applications
|
||||
features:
|
||||
- Dedicated Resources
|
||||
- Flexible Vertical and Horizontal Scaling
|
||||
- Highly Available Setups
|
||||
- Backup & Disaster Recovery
|
||||
- Free Tokens for Paid Inference Models
|
||||
- 99.5% Uptime SLA
|
||||
marketplace:
|
||||
label: Subscribe on Marketplace.
|
||||
logos:
|
||||
- name: AWS
|
||||
icon: aws
|
||||
- name: Google Cloud
|
||||
icon: gcp
|
||||
- name: Azure
|
||||
icon: azure
|
||||
cta:
|
||||
text: Deploy on Cloud
|
||||
url: https://cloud.qdrant.io
|
||||
style: contained
|
||||
- id: premium
|
||||
title: Premium Tier
|
||||
pricing: Minimum spend required
|
||||
pricingNote: Committed Usage
|
||||
target: For enterprises with additional security and compliance needs
|
||||
features:
|
||||
- SSO
|
||||
- Private VPC Links
|
||||
- 99.9% Uptime SLA
|
||||
- Extra Support
|
||||
cta:
|
||||
text: Talk to Our Engineers
|
||||
url: /contact-us/
|
||||
style: outlined
|
||||
- id: on-premise
|
||||
label: On-Premise
|
||||
active: false
|
||||
tiers:
|
||||
- id: hybrid-cloud
|
||||
title: Hybrid Cloud
|
||||
badge: true
|
||||
target: Run managed Qdrant clusters on your own infrastructure using your compute, network and storage.
|
||||
featureGroups:
|
||||
- label: "Best for:"
|
||||
items:
|
||||
- Local Data Residency
|
||||
- Regulated Workloads
|
||||
- Easy Operations in Your Own Cloud
|
||||
- label: "Benefits:"
|
||||
items:
|
||||
- Data Stays in Your Network
|
||||
- Fully Managed Through Qdrant Cloud
|
||||
- Production-Grade Uptime
|
||||
cta:
|
||||
text: Talk to Our Engineers
|
||||
url: /contact-us/
|
||||
style: contained
|
||||
- id: private-cloud
|
||||
title: Private Cloud
|
||||
badge: true
|
||||
target: "Dedicated, isolated deployment for strict security or compliance needs."
|
||||
featureGroups:
|
||||
- label: "Best for:"
|
||||
items:
|
||||
- Large Enterprises
|
||||
- Sensitive Workloads
|
||||
- Air-Gapped Setups
|
||||
- label: "Benefits:"
|
||||
items:
|
||||
- Custom SLAs
|
||||
- Full Isolation
|
||||
cta:
|
||||
text: Talk to Our Engineers
|
||||
url: /contact-us/
|
||||
style: contained
|
||||
sitemapExclude: true
|
||||
---
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: FAQs
|
||||
questions:
|
||||
- question: What Happens if I Exceed Free Tier Limits?
|
||||
answer: If your data size growth exceeds the Free Tier limits (1GB RAM and 4GB disk), you can easily upgrade to a Standard Tier and scale up your cluster.
|
||||
- question: How Does Qdrant Cloud Pricing Work
|
||||
answer: Qdrant Cloud pricing is based on resource usage, if you have a bigger cluster, you pay for more. The free tier includes 1GB RAM and 4GB disk storage, upgrading will get you a dedicated cluster.
|
||||
- question: Can I Migrate from OSS to Qdrant Cloud?
|
||||
answer: Yes, you can easily migrate your existing Qdrant OSS deployment to Qdrant Cloud. We provide a migration tool and documentation to help you transition smoothly.
|
||||
- question: How Do I Choose Between Free Tier and Standard Tier?
|
||||
answer: The Free Tier is ideal for testing, and prototypes being limited to 1GB RAM and 4GB disk without high availability. Choose the Standard Tier for workloads that require dedicated clusters, higher availability, and advanced features.
|
||||
- question: What's the Difference Between Managed, Hybrid, and Private Cloud?
|
||||
answer: Managed Cloud is fully managed by Qdrant. Hybrid Cloud lets you bring your own infrastructure while using Qdrant's management plane. Private Cloud gives you complete control with on-premise deployment.
|
||||
- question: How Is Billing Calculated Month-to-Month?
|
||||
answer: Billing is calculated based on actual resource usage during the billing period. You're charged for compute (vCPU), memory (GB), storage (GB) consumed by your clusters, storage (GB) consumed by backups, and used inference tokens of paid models. Usage is billed hourly, and you can monitor it through the Qdrant Cloud dashboard.
|
||||
sitemapExclude: true
|
||||
---
|
||||
@@ -0,0 +1,119 @@
|
||||
---
|
||||
title: Features by Tier
|
||||
tables:
|
||||
- id: managed
|
||||
label: Managed
|
||||
tiers:
|
||||
- id: oss
|
||||
name: OSS
|
||||
highlight: false
|
||||
bold: false
|
||||
- id: free
|
||||
name: Free Tier
|
||||
highlight: false
|
||||
bold: false
|
||||
- id: standard
|
||||
name: Standard Tier
|
||||
highlight: true
|
||||
bold: true
|
||||
- id: premium
|
||||
name: Premium Tier
|
||||
highlight: false
|
||||
bold: true
|
||||
sections:
|
||||
- name: Features
|
||||
features:
|
||||
- name: Cloud Inference
|
||||
oss: false
|
||||
free: Only free and external models
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Cloud Providers
|
||||
oss: Depends on chosen infrastructure
|
||||
free: AWS, Azure, GCP
|
||||
standard: AWS, Azure, GCP
|
||||
premium: AWS, Azure, GCP
|
||||
- name: Uptime SLA
|
||||
oss: false
|
||||
free: false
|
||||
standard: "99.5"
|
||||
premium: "99.9"
|
||||
- name: Automation
|
||||
oss: false
|
||||
free: API, Terraform, Pulumi
|
||||
standard: API, Terraform, Pulumi
|
||||
premium: API, Terraform, Pulumi
|
||||
- name: Vertical Up & Downscaling
|
||||
oss: No resource usage safe guards
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Horizontal Up & Downscaling
|
||||
oss: No automated shard rebalancing
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Backup & Disaster Recovery
|
||||
oss: Custom automation
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Shard Splitting
|
||||
oss: false
|
||||
free: false
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Support Level
|
||||
oss: Community
|
||||
free: Community
|
||||
standard: Standard
|
||||
premium: Premium
|
||||
- name: Support Response Times
|
||||
oss: false
|
||||
free: Best effort
|
||||
standard: 10x5
|
||||
premium: 24x7
|
||||
- name: Encryption at Rest and in Transit
|
||||
oss: Depends on chosen infrastructure
|
||||
free: true
|
||||
standard: true
|
||||
premium: true
|
||||
- name: Disk Encryption with Custom Key
|
||||
oss: Depends on chosen infrastructure
|
||||
free: false
|
||||
standard: false
|
||||
premium: (AWS only)
|
||||
- name: Private VPC Links
|
||||
oss: N/A
|
||||
free: false
|
||||
standard: false
|
||||
premium: true
|
||||
- name: Enterprise SSO Authentication
|
||||
oss: false
|
||||
free: false
|
||||
standard: false
|
||||
premium: true
|
||||
ctas:
|
||||
- tier: oss
|
||||
text: Start Free
|
||||
url: https://cloud.qdrant.io
|
||||
contained: false
|
||||
- tier: free
|
||||
text: Start Free
|
||||
url: https://cloud.qdrant.io
|
||||
contained: false
|
||||
- tier: standard
|
||||
text: Deploy on Cloud
|
||||
url: https://cloud.qdrant.io
|
||||
contained: true
|
||||
- tier: premium
|
||||
text: Deploy on Cloud
|
||||
url: /contact-us/
|
||||
contained: false
|
||||
|
||||
|
||||
compareButton:
|
||||
text: Compare All Features
|
||||
url: /pricing/comparison/
|
||||
sitemapExclude: true
|
||||
---
|
||||
@@ -1,6 +1,11 @@
|
||||
---
|
||||
title: Qdrant Pricing
|
||||
subtitle: Cloud & Enterprise solutions
|
||||
description: Choose the deployment option for your application and explore our transparent pricing plans.
|
||||
title: Qdrant Cloud Pricing
|
||||
description: Start free. Scale to production with fully managed vector search. Meet all enterprise security and compliance requirements.
|
||||
button:
|
||||
text: Talk to our Team
|
||||
url: /contact-us/
|
||||
link:
|
||||
text: Try our Pricing Calculator
|
||||
url: https://cloud.qdrant.io/calculator
|
||||
sitemapExclude: true
|
||||
---
|
||||
|
||||
@@ -137,15 +137,15 @@ $font-sizes-text: (
|
||||
$font-size-sm: $font-size-s;
|
||||
$font-size-lg: $font-size-l;
|
||||
|
||||
$font-weight-lighter: lighter !default;
|
||||
$font-weight-light: 300 !default;
|
||||
$font-weight-normal: 350 !default;
|
||||
$font-weight-medium: 500 !default;
|
||||
$font-weight-semibold: 600 !default;
|
||||
$font-weight-bold: 700 !default;
|
||||
$font-weight-bolder: bolder !default;
|
||||
$font-weight-lighter: lighter !default;
|
||||
$font-weight-light: 300 !default;
|
||||
$font-weight-normal: 350 !default;
|
||||
$font-weight-medium: 500 !default;
|
||||
$font-weight-semibold: 600 !default;
|
||||
$font-weight-bold: 700 !default;
|
||||
$font-weight-bolder: bolder !default;
|
||||
|
||||
$font-weight-base: $font-weight-normal !default;
|
||||
$font-weight-base: $font-weight-normal !default;
|
||||
|
||||
$line-height-sm: pxToRem(21);
|
||||
$line-height-lg: pxToRem(27);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use "sass:math";
|
||||
@use 'sass:math';
|
||||
|
||||
.course-card {
|
||||
width: 100%;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use "sass:math";
|
||||
@use 'sass:math';
|
||||
|
||||
.date {
|
||||
display: flex;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use "sass:math";
|
||||
@use 'sass:math';
|
||||
|
||||
.list {
|
||||
color: $neutral-70;
|
||||
@@ -18,7 +18,7 @@
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: pxToRem(5);
|
||||
|
||||
@@ -13,4 +13,4 @@
|
||||
@import 'partials/feedback';
|
||||
@import 'partials/documentation/docs-footer';
|
||||
@import 'partials/video';
|
||||
@import 'search/dark-theme';
|
||||
@import 'search/dark-theme';
|
||||
|
||||
@@ -5,4 +5,3 @@
|
||||
font-display: swap;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,4 +13,3 @@
|
||||
font-display: swap;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
@font-face {
|
||||
font-family: 'Overpass Mono';
|
||||
font-style: normal;
|
||||
font-weight: 300 700;
|
||||
font-display: swap;
|
||||
src: url('/fonts/overpass_mono/overpass-mono-variable-font_wght.ttf') format('truetype');
|
||||
font-family: 'Overpass Mono';
|
||||
font-style: normal;
|
||||
font-weight: 300 700;
|
||||
font-display: swap;
|
||||
src: url('/fonts/overpass_mono/overpass-mono-variable-font_wght.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Overpass Mono';
|
||||
font-style: italic;
|
||||
font-weight: 300 700;
|
||||
font-display: swap;
|
||||
src: url('/fonts/overpass_mono/overpass-mono-variable-font_wght.ttf') format('truetype');
|
||||
}
|
||||
font-family: 'Overpass Mono';
|
||||
font-style: italic;
|
||||
font-weight: 300 700;
|
||||
font-display: swap;
|
||||
src: url('/fonts/overpass_mono/overpass-mono-variable-font_wght.ttf') format('truetype');
|
||||
}
|
||||
|
||||
@@ -19,13 +19,7 @@
|
||||
@import 'partials/testimonial';
|
||||
@import 'partials/enterprise-solutions-challenges';
|
||||
@import 'partials/top-and-bottom-overlay';
|
||||
@import 'partials/qdrant-pricing-hero';
|
||||
@import 'partials/qdrant-pricing-calculator';
|
||||
@import 'partials/qdrant-pricing-docker-deploy';
|
||||
@import 'partials/qdrant-pricing-doors-a';
|
||||
@import 'partials/qdrant-pricing-doors-b';
|
||||
@import 'partials/qdrant-pricing-marketplaces';
|
||||
@import 'partials/pricing-door';
|
||||
@import 'partials/pricing/index';
|
||||
@import 'partials/get-contacted-with-question';
|
||||
@import 'partials/private-cloud-hero';
|
||||
@import 'partials/private-cloud-about';
|
||||
@@ -33,7 +27,6 @@
|
||||
@import 'partials/qdrant-cloud-hero';
|
||||
@import 'partials/qdrant-cloud-bento-cards';
|
||||
@import 'partials/qdrant-cloud-marketplaces';
|
||||
@import 'partials/qdrant-pricing-get-contacted';
|
||||
@import 'partials/qdrant-cloud-features-link';
|
||||
@import 'partials/video';
|
||||
@import 'partials/customer-list';
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
padding-bottom: $spacer * 4;
|
||||
|
||||
&:after {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
margin-bottom: 0;
|
||||
padding: math.div($spacer, 4) $spacer * 3 math.div($spacer, 4) 0;
|
||||
color: $neutral-20;
|
||||
line-height: 1.3;
|
||||
letter-spacing: -0.5px;
|
||||
cursor: pointer;
|
||||
|
||||
&:after {
|
||||
@@ -47,7 +49,7 @@
|
||||
margin-bottom: $spacer * 2.5;
|
||||
|
||||
ul {
|
||||
list-style-type: "- ";
|
||||
list-style-type: '- ';
|
||||
padding-left: pxToRem(14);
|
||||
}
|
||||
|
||||
@@ -64,6 +66,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
&__item {
|
||||
&-header {
|
||||
min-height: pxToRem(98);
|
||||
padding: $spacer $spacer * 1.5 $spacer 0;
|
||||
font-size: pxToRem(24);
|
||||
font-weight: 600;
|
||||
line-height: 1.3;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
&__item {
|
||||
&-header {
|
||||
|
||||
@@ -20,10 +20,12 @@
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: pxToRem(376);
|
||||
background-image: url('/img/blurred/blurred-light-24.png'),
|
||||
url('/img/blurred/blurred-light-25.png'),
|
||||
url('/img/blurred/blurred-light-26.png');
|
||||
background-position: top left, bottom left, bottom right;
|
||||
background-image: url('/img/blurred/blurred-light-24.png'), url('/img/blurred/blurred-light-25.png'),
|
||||
url('/img/blurred/blurred-light-26.png');
|
||||
background-position:
|
||||
top left,
|
||||
bottom left,
|
||||
bottom right;
|
||||
background-size: contain, contain, contain;
|
||||
background-repeat: no-repeat;
|
||||
z-index: 1;
|
||||
@@ -36,9 +38,12 @@
|
||||
right: -20%;
|
||||
bottom: -9px;
|
||||
display: flex;
|
||||
background-image: linear-gradient(270deg, rgba(11, 15, 25, 0.00) 26.48%, #0B0F19 87.55%), url('/img/square-grid-black.svg');
|
||||
background-image: linear-gradient(270deg, rgba(11, 15, 25, 0) 26.48%, #0b0f19 87.55%),
|
||||
url('/img/square-grid-black.svg');
|
||||
background-size: cover, contain;
|
||||
background-position: center right, center right;
|
||||
background-position:
|
||||
center right,
|
||||
center right;
|
||||
background-repeat: no-repeat, no-repeat;
|
||||
z-index: 0;
|
||||
}
|
||||
@@ -59,7 +64,7 @@
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
right: 0;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +76,7 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: pxToRem(32);
|
||||
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
max-width: pxToRem(560);
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
&__content {
|
||||
position: relative;
|
||||
padding: $spacer * 2.5 $spacer * 3;
|
||||
padding-bottom: pxToRem(450);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
@@ -41,17 +42,59 @@
|
||||
}
|
||||
|
||||
&__title {
|
||||
margin: 0 0 0.75rem;
|
||||
margin: 0 0 $spacer;
|
||||
font-size: $spacer * 2;
|
||||
line-height: pxToRem(38);
|
||||
letter-spacing: -0.5px;
|
||||
color: $neutral-98;
|
||||
}
|
||||
|
||||
&__description {
|
||||
margin: 0 0 1.5rem;
|
||||
margin: 0 0 $spacer * 2;
|
||||
font-size: pxToRem(18);
|
||||
line-height: 1;
|
||||
color: $neutral-70;
|
||||
line-height: 1.5;
|
||||
letter-spacing: -0.2px;
|
||||
color: $neutral-90;
|
||||
}
|
||||
|
||||
&__illustration {
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: auto;
|
||||
right: -10%;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
|
||||
img {
|
||||
height: 100%;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
padding-top: $spacer * 5;
|
||||
padding-bottom: $spacer * 5;
|
||||
|
||||
&__content {
|
||||
padding: $spacer * 5 $spacer * 1.25;
|
||||
padding-bottom: pxToRem(400);
|
||||
}
|
||||
|
||||
&__title {
|
||||
margin: 0 0 $spacer;
|
||||
font-size: pxToRem(40);
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
|
||||
&__description {
|
||||
margin: 0 0 $spacer * 2;
|
||||
font-size: pxToRem(20);
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
letter-spacing: -0.2px;
|
||||
}
|
||||
}
|
||||
|
||||
&__button {
|
||||
@@ -59,7 +102,18 @@
|
||||
}
|
||||
|
||||
&__illustration {
|
||||
display: none;
|
||||
display: block;
|
||||
right: 0;
|
||||
&::before {
|
||||
display: block;
|
||||
content: '';
|
||||
height: 50px;
|
||||
background: linear-gradient(to bottom, #0c1220, 30%, transparent);
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(lg) {
|
||||
@@ -67,7 +121,7 @@
|
||||
padding-bottom: $spacer * 7.5;
|
||||
|
||||
&__content {
|
||||
padding: $spacer * 2.5 $spacer * 5;
|
||||
padding: $spacer * 3 $spacer * 4;
|
||||
}
|
||||
|
||||
&__text {
|
||||
@@ -83,11 +137,13 @@
|
||||
|
||||
&__description {
|
||||
font-size: pxToRem(20);
|
||||
line-height: pxToRem(30);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
&__illustration {
|
||||
display: block;
|
||||
&::before {
|
||||
display: none;
|
||||
}
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
@@ -95,7 +151,6 @@
|
||||
pointer-events: none;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
height: 100%;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
@@ -6,11 +6,12 @@
|
||||
padding-top: $spacer * 4;
|
||||
padding-bottom: $spacer * 4;
|
||||
background: radial-gradient(
|
||||
ellipse 120% 80% at 0% 0%,
|
||||
rgba(231, 29, 95, 0.12) 0%,
|
||||
rgba(133, 71, 255, 0.06) 40%,
|
||||
transparent 70%
|
||||
), $neutral-10;
|
||||
ellipse 120% 80% at 0% 0%,
|
||||
rgba(231, 29, 95, 0.12) 0%,
|
||||
rgba(133, 71, 255, 0.06) 40%,
|
||||
transparent 70%
|
||||
),
|
||||
$neutral-10;
|
||||
|
||||
&__lights-overlay {
|
||||
position: absolute;
|
||||
|
||||
@@ -36,11 +36,13 @@
|
||||
font-family: $font-family-base;
|
||||
}
|
||||
|
||||
[data-hsfc-id=Renderer] .hsfc-Step .hsfc-Step__Content {
|
||||
[data-hsfc-id='Renderer'] .hsfc-Step .hsfc-Step__Content {
|
||||
padding: $spacer * 1.5;
|
||||
}
|
||||
|
||||
.hsfc-RichText span, .hsfc-FieldLabel span, .hsfc-ProgressBar__Text {
|
||||
.hsfc-RichText span,
|
||||
.hsfc-FieldLabel span,
|
||||
.hsfc-ProgressBar__Text {
|
||||
font-size: $font-size-s !important;
|
||||
line-height: $line-height-sm !important;
|
||||
color: $neutral-98 !important;
|
||||
@@ -50,7 +52,8 @@
|
||||
margin-bottom: $spacer * 0.5 !important;
|
||||
}
|
||||
|
||||
[data-hsfc-id=Renderer] .hsfc-TextInput, [data-hsfc-id=Renderer] .hsfc-TextareaInput {
|
||||
[data-hsfc-id='Renderer'] .hsfc-TextInput,
|
||||
[data-hsfc-id='Renderer'] .hsfc-TextareaInput {
|
||||
display: block;
|
||||
background-color: transparent;
|
||||
border: pxToRem(1) solid $neutral-50;
|
||||
@@ -61,7 +64,8 @@
|
||||
color: $neutral-98;
|
||||
border-radius: $spacer * 0.5;
|
||||
|
||||
&:focus, &:active {
|
||||
&:focus,
|
||||
&:active {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
@@ -70,13 +74,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
[data-hsfc-id=Renderer] .hsfc-ErrorAlert {
|
||||
[data-hsfc-id='Renderer'] .hsfc-ErrorAlert {
|
||||
font-size: $font-size-xs;
|
||||
line-height: $font-size-l;
|
||||
color: $primary-40;
|
||||
}
|
||||
|
||||
[data-hsfc-id=Renderer] .hsfc-Button {
|
||||
[data-hsfc-id='Renderer'] .hsfc-Button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -153,7 +157,7 @@
|
||||
}
|
||||
|
||||
&__container {
|
||||
[data-hsfc-id=Renderer] .hsfc-Step .hsfc-Step__Content {
|
||||
[data-hsfc-id='Renderer'] .hsfc-Step .hsfc-Step__Content {
|
||||
padding: $spacer * 4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,8 @@
|
||||
line-height: pxToRem(67);
|
||||
}
|
||||
|
||||
&__subtitle, &__description {
|
||||
&__subtitle,
|
||||
&__description {
|
||||
max-width: pxToRem(500);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
&:nth-of-type(4) {
|
||||
& > div {
|
||||
&:before {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
height: 100%;
|
||||
width: pxToRem(1);
|
||||
@@ -72,7 +72,7 @@
|
||||
&:nth-of-type(2) {
|
||||
& > div {
|
||||
&:after {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: pxToRem(1);
|
||||
|
||||
+6
-6
@@ -22,10 +22,10 @@
|
||||
grid-template-columns: 1fr;
|
||||
gap: $spacer * 1.5;
|
||||
grid-template-areas:
|
||||
"compliance"
|
||||
"management"
|
||||
"api"
|
||||
"observability";
|
||||
'compliance'
|
||||
'management'
|
||||
'api'
|
||||
'observability';
|
||||
}
|
||||
|
||||
&__card {
|
||||
@@ -101,8 +101,8 @@
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
grid-template-areas:
|
||||
"compliance management management"
|
||||
"compliance api observability";
|
||||
'compliance management management'
|
||||
'compliance api observability';
|
||||
}
|
||||
|
||||
&__card {
|
||||
|
||||
+2
-2
@@ -60,7 +60,7 @@
|
||||
margin-left: auto;
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
height: 100%;
|
||||
width: pxToRem(1);
|
||||
@@ -76,7 +76,7 @@
|
||||
&:nth-of-type(2) {
|
||||
& > div {
|
||||
&:after {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
width: calc(100% - pxToRem(32));
|
||||
height: pxToRem(1);
|
||||
|
||||
+4
-2
@@ -119,7 +119,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
&-title, &-description {
|
||||
&-title,
|
||||
&-description {
|
||||
margin-bottom: $spacer * 1.5;
|
||||
}
|
||||
}
|
||||
@@ -132,7 +133,8 @@
|
||||
padding: 0 $spacer * 4 0 $spacer * 3;
|
||||
}
|
||||
|
||||
&-title, &-description {
|
||||
&-title,
|
||||
&-description {
|
||||
margin-bottom: pxToRem(12);
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
}
|
||||
|
||||
&-section {
|
||||
width: calc(50% - math.div($spacer, 2))
|
||||
width: calc(50% - math.div($spacer, 2));
|
||||
}
|
||||
|
||||
&-section-title {
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
.go-to-top-button {
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
color: $neutral-30;
|
||||
background: $neutral-94;
|
||||
z-index: 10;
|
||||
transition: background-color 0.3s;
|
||||
|
||||
[data-theme='light'] & {
|
||||
color: $neutral-30;
|
||||
background: $neutral-94;
|
||||
z-index: 10;
|
||||
transition: background-color 0.3s;
|
||||
}
|
||||
|
||||
[data-theme="light"] & {
|
||||
color: $neutral-30;
|
||||
background: $neutral-94;
|
||||
}
|
||||
|
||||
[data-theme="dark"] & {
|
||||
color: $neutral-94;
|
||||
background: $neutral-30;
|
||||
}
|
||||
}
|
||||
[data-theme='dark'] & {
|
||||
color: $neutral-94;
|
||||
background: $neutral-30;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
transition:
|
||||
all 0.3s ease-in-out,
|
||||
color 0.1s linear;
|
||||
padding-right: $icon-width;
|
||||
padding-right: calc($icon-width + 6px);
|
||||
|
||||
&:before {
|
||||
display: block;
|
||||
@@ -52,7 +52,6 @@
|
||||
}
|
||||
|
||||
&:hover {
|
||||
padding-right: calc($icon-width + 6px);
|
||||
&:after {
|
||||
animation: dash 0.3s ease-in-out forwards;
|
||||
}
|
||||
@@ -205,7 +204,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// font-size
|
||||
&_inherit {
|
||||
font-size: inherit;
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
margin-bottom: $spacer * 5;
|
||||
}
|
||||
|
||||
&__extra-block{
|
||||
&__extra-block {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $spacer * 2;
|
||||
@@ -71,7 +71,7 @@
|
||||
text-align: center;
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
@@ -116,7 +116,7 @@
|
||||
margin-bottom: $spacer * 7.5;
|
||||
}
|
||||
|
||||
&__extra-block{
|
||||
&__extra-block {
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
+2
-1
@@ -36,7 +36,8 @@
|
||||
line-height: pxToRem(27);
|
||||
color: $neutral-40;
|
||||
|
||||
strong, b {
|
||||
strong,
|
||||
b {
|
||||
font-weight: 600;
|
||||
color: $neutral-20;
|
||||
}
|
||||
|
||||
+4
-4
@@ -72,7 +72,7 @@
|
||||
}
|
||||
|
||||
form {
|
||||
&.hs-form>fieldset {
|
||||
&.hs-form > fieldset {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
@@ -86,13 +86,13 @@
|
||||
margin-top: pxToRem(12);
|
||||
margin-bottom: $spacer * 2.5;
|
||||
|
||||
input[type=submit] {
|
||||
input[type='submit'] {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&.hs-form>fieldset.form-columns-2 {
|
||||
gap: 0
|
||||
&.hs-form > fieldset.form-columns-2 {
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
fieldset:last-of-type {
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
@use '../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-calculator {
|
||||
padding-bottom: $spacer * 4;
|
||||
background-color: $neutral-10;
|
||||
color: $neutral-98;
|
||||
text-align: center;
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(20);
|
||||
line-height: pxToRem(30);
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
&__link {
|
||||
margin-top: $spacer * 1.5;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
padding-bottom: $spacer * 7.5;
|
||||
|
||||
&__content {
|
||||
position: relative;
|
||||
|
||||
&:before,
|
||||
&:after {
|
||||
content: ('');
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: pxToRem(29.5);
|
||||
height: pxToRem(1);
|
||||
width: calc((100% - 453px) / 2);
|
||||
background-color: $neutral-30;
|
||||
}
|
||||
|
||||
&:before {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
&:after {
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
@use '../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-doors-b {
|
||||
padding-bottom: $spacer * 4;
|
||||
padding-top: $spacer * 4;
|
||||
background-color: $neutral-10;
|
||||
|
||||
&__doors {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: pxToRem(30);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
padding-bottom: $spacer * 5;
|
||||
padding-top: $spacer * 5;
|
||||
|
||||
&__doors {
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
&__door {
|
||||
width: calc((100% / 3) - 20px);
|
||||
|
||||
.pricing-door__description {
|
||||
height: pxToRem(42);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
@use '../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-hero {
|
||||
padding-top: $spacer * 2.5;
|
||||
background-color: $neutral-10;
|
||||
color: $neutral-98;
|
||||
text-align: center;
|
||||
|
||||
&__title {
|
||||
font-size: $spacer * 2;
|
||||
line-height: pxToRem(38);
|
||||
margin-bottom: $spacer;
|
||||
}
|
||||
|
||||
&__subtitle {
|
||||
font-size: $spacer * 1.5;
|
||||
line-height: pxToRem(34);
|
||||
margin-bottom: $spacer;
|
||||
}
|
||||
|
||||
&__description {
|
||||
margin-bottom: 0;
|
||||
color: $neutral-70;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
padding-top: $spacer * 5;
|
||||
|
||||
&__title {
|
||||
font-size: $spacer * 3;
|
||||
line-height: pxToRem(57);
|
||||
margin-bottom: $spacer * 1.5;
|
||||
}
|
||||
|
||||
&__subtitle {
|
||||
font-size: $spacer * 2;
|
||||
line-height: pxToRem(38);
|
||||
margin-bottom: $spacer * 1.5;
|
||||
}
|
||||
|
||||
&__description {
|
||||
font-size: pxToRem(18);
|
||||
line-height: pxToRem(27);
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -33,7 +33,7 @@
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
form.hs-form>fieldset {
|
||||
form.hs-form > fieldset {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
@@ -48,8 +48,8 @@
|
||||
margin-bottom: $spacer * 0.5;
|
||||
}
|
||||
|
||||
form.hs-form>fieldset.form-columns-2 {
|
||||
gap: 0
|
||||
form.hs-form > fieldset.form-columns-2 {
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
fieldset:last-of-type {
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@
|
||||
margin-bottom: 0;
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
font-weight: $font-weight-base;
|
||||
font-weight: $font-weight-base;
|
||||
color: $neutral-90;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
flex-direction: column;
|
||||
|
||||
.hs_email {
|
||||
& > label {
|
||||
& > label {
|
||||
display: block;
|
||||
margin-bottom: pxToRem(6);
|
||||
font-size: pxToRem(14);
|
||||
@@ -103,8 +103,8 @@
|
||||
}
|
||||
}
|
||||
.button {
|
||||
width: 100%;
|
||||
margin-top: $spacer * 1.5;
|
||||
width: 100%;
|
||||
margin-top: $spacer * 1.5;
|
||||
}
|
||||
.hs_error_rollup {
|
||||
top: 0;
|
||||
@@ -114,7 +114,6 @@
|
||||
.submitted-message {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
&-header {
|
||||
|
||||
+3
-3
@@ -73,7 +73,7 @@
|
||||
line-height: pxToRem(21);
|
||||
color: $neutral-50;
|
||||
}
|
||||
[data-theme="light"] & {
|
||||
[data-theme='light'] & {
|
||||
&-about {
|
||||
color: $neutral-30;
|
||||
}
|
||||
@@ -82,7 +82,7 @@
|
||||
}
|
||||
&-description {
|
||||
color: $neutral-50;
|
||||
font-weight: $font-weight-base;
|
||||
font-weight: $font-weight-base;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -122,7 +122,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
[data-theme="light"] & {
|
||||
[data-theme='light'] & {
|
||||
&__title {
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
+2
-3
@@ -11,7 +11,6 @@
|
||||
}
|
||||
|
||||
.main-menu {
|
||||
|
||||
&__links {
|
||||
margin-right: auto;
|
||||
padding-left: 0;
|
||||
@@ -70,7 +69,7 @@
|
||||
padding: $spacer * 0.5;
|
||||
border-radius: $spacer * 0.5;
|
||||
z-index: 1;
|
||||
background: linear-gradient($neutral-30, #141B2E);
|
||||
background: linear-gradient($neutral-30, #141b2e);
|
||||
}
|
||||
|
||||
&__items {
|
||||
@@ -159,7 +158,7 @@
|
||||
background: url('/img/qdrant-logo-red-black.svg') no-repeat left bottom;
|
||||
background-size: 120px 32px;
|
||||
img {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
font-size: $spacer * 2;
|
||||
line-height: $spacer * 2.5;
|
||||
padding: 0;
|
||||
margin-bottom: math.div($spacer, 2);
|
||||
margin-bottom: math.div($spacer, 2);
|
||||
}
|
||||
|
||||
h3 {
|
||||
@@ -271,7 +271,8 @@
|
||||
}
|
||||
}
|
||||
.docs-core__developing-block {
|
||||
h1, h3 {
|
||||
h1,
|
||||
h3 {
|
||||
color: $neutral-98;
|
||||
}
|
||||
p {
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
&:hover {
|
||||
color: $neutral-90;
|
||||
svg path {
|
||||
stroke: $neutral-90;
|
||||
stroke: $neutral-90;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+7
-8
@@ -101,7 +101,7 @@
|
||||
}
|
||||
|
||||
&.active {
|
||||
&>.docs-menu__links-group-heading>a {
|
||||
& > .docs-menu__links-group-heading > a {
|
||||
font-weight: 600;
|
||||
background-color: $neutral-30;
|
||||
color: $neutral-90;
|
||||
@@ -181,7 +181,7 @@
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 math.div($spacer, 2);
|
||||
padding: 0 math.div($spacer, 2);
|
||||
|
||||
&-container {
|
||||
width: pxToRem(168);
|
||||
@@ -232,7 +232,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
&> :last-child {
|
||||
& > :last-child {
|
||||
padding-bottom: $spacer;
|
||||
border-bottom: pxToRem(1) solid $neutral-20;
|
||||
}
|
||||
@@ -245,10 +245,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
&__links-group {
|
||||
&.active {
|
||||
&>.docs-menu__links-group-heading>a {
|
||||
& > .docs-menu__links-group-heading > a {
|
||||
background-color: $neutral-20;
|
||||
}
|
||||
|
||||
@@ -327,7 +326,7 @@
|
||||
}
|
||||
|
||||
&.active {
|
||||
&>.docs-menu__links-group-heading>a {
|
||||
& > .docs-menu__links-group-heading > a {
|
||||
color: $primary-50;
|
||||
background: $neutral-90;
|
||||
}
|
||||
@@ -363,7 +362,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
&__links> :last-child,
|
||||
&__links > :last-child,
|
||||
&__links-title:not(:nth-of-type(1)) {
|
||||
border-color: $neutral-80;
|
||||
}
|
||||
@@ -373,7 +372,7 @@
|
||||
|
||||
&__links-group {
|
||||
&.active {
|
||||
&>.docs-menu__links-group-heading>a {
|
||||
& > .docs-menu__links-group-heading > a {
|
||||
color: $neutral-30;
|
||||
}
|
||||
}
|
||||
|
||||
+18
-6
@@ -78,9 +78,15 @@
|
||||
}
|
||||
|
||||
// Level Color-Coding
|
||||
.text-green { color: $success-80; }
|
||||
.text-yellow { color: $warning-80; }
|
||||
.text-red { color: $error-50; }
|
||||
.text-green {
|
||||
color: $success-80;
|
||||
}
|
||||
.text-yellow {
|
||||
color: $warning-80;
|
||||
}
|
||||
.text-red {
|
||||
color: $error-50;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
&__container {
|
||||
@@ -128,8 +134,14 @@
|
||||
color: $neutral-100;
|
||||
}
|
||||
|
||||
.text-green { color: color.adjust($success-50, $saturation: 5%, $lightness: 8%); }
|
||||
.text-yellow { color: color.adjust($warning-50, $saturation: 5%, $lightness: 8%); }
|
||||
.text-red { color: color.adjust($error-50, $lightness: 3%); }
|
||||
.text-green {
|
||||
color: color.adjust($success-50, $saturation: 5%, $lightness: 8%);
|
||||
}
|
||||
.text-yellow {
|
||||
color: color.adjust($warning-50, $saturation: 5%, $lightness: 8%);
|
||||
}
|
||||
.text-red {
|
||||
color: color.adjust($error-50, $lightness: 3%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,11 +6,12 @@
|
||||
padding-top: $spacer * 4;
|
||||
padding-bottom: $spacer * 4;
|
||||
background: radial-gradient(
|
||||
ellipse 120% 80% at 0% 0%,
|
||||
rgba(231, 29, 95, 0.12) 0%,
|
||||
rgba(133, 71, 255, 0.06) 40%,
|
||||
transparent 70%
|
||||
), $neutral-10;
|
||||
ellipse 120% 80% at 0% 0%,
|
||||
rgba(231, 29, 95, 0.12) 0%,
|
||||
rgba(133, 71, 255, 0.06) 40%,
|
||||
transparent 70%
|
||||
),
|
||||
$neutral-10;
|
||||
|
||||
&__lights-overlay {
|
||||
position: absolute;
|
||||
|
||||
@@ -36,11 +36,13 @@
|
||||
font-family: $font-family-base;
|
||||
}
|
||||
|
||||
[data-hsfc-id=Renderer] .hsfc-Step .hsfc-Step__Content {
|
||||
[data-hsfc-id='Renderer'] .hsfc-Step .hsfc-Step__Content {
|
||||
padding: $spacer * 1.5;
|
||||
}
|
||||
|
||||
.hsfc-RichText span, .hsfc-FieldLabel span, .hsfc-ProgressBar__Text {
|
||||
.hsfc-RichText span,
|
||||
.hsfc-FieldLabel span,
|
||||
.hsfc-ProgressBar__Text {
|
||||
font-size: $font-size-s !important;
|
||||
line-height: $line-height-sm !important;
|
||||
color: $neutral-98 !important;
|
||||
@@ -50,7 +52,8 @@
|
||||
margin-bottom: $spacer * 0.5 !important;
|
||||
}
|
||||
|
||||
[data-hsfc-id=Renderer] .hsfc-TextInput, [data-hsfc-id=Renderer] .hsfc-TextareaInput {
|
||||
[data-hsfc-id='Renderer'] .hsfc-TextInput,
|
||||
[data-hsfc-id='Renderer'] .hsfc-TextareaInput {
|
||||
display: block;
|
||||
background-color: transparent;
|
||||
border: pxToRem(1) solid $neutral-50;
|
||||
@@ -61,7 +64,8 @@
|
||||
color: $neutral-98;
|
||||
border-radius: $spacer * 0.5;
|
||||
|
||||
&:focus, &:active {
|
||||
&:focus,
|
||||
&:active {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
@@ -70,13 +74,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
[data-hsfc-id=Renderer] .hsfc-ErrorAlert {
|
||||
[data-hsfc-id='Renderer'] .hsfc-ErrorAlert {
|
||||
font-size: $font-size-xs;
|
||||
line-height: $font-size-l;
|
||||
color: $primary-40;
|
||||
}
|
||||
|
||||
[data-hsfc-id=Renderer] .hsfc-Button {
|
||||
[data-hsfc-id='Renderer'] .hsfc-Button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -153,7 +157,7 @@
|
||||
}
|
||||
|
||||
&__container {
|
||||
[data-hsfc-id=Renderer] .hsfc-Step .hsfc-Step__Content {
|
||||
[data-hsfc-id='Renderer'] .hsfc-Step .hsfc-Step__Content {
|
||||
padding: $spacer * 4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,8 @@
|
||||
line-height: pxToRem(67);
|
||||
}
|
||||
|
||||
&__subtitle, &__description {
|
||||
&__subtitle,
|
||||
&__description {
|
||||
max-width: pxToRem(500);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
&:nth-of-type(4) {
|
||||
& > div {
|
||||
&:before {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
height: 100%;
|
||||
width: pxToRem(1);
|
||||
@@ -72,7 +72,7 @@
|
||||
&:nth-of-type(2) {
|
||||
& > div {
|
||||
&:after {
|
||||
content: "";
|
||||
content: '';
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: pxToRem(1);
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
@import 'edge-demo';
|
||||
@import 'edge-form';
|
||||
@import 'edge-faq';
|
||||
@import 'edge-get-started';
|
||||
@import 'edge-get-started';
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
&-list {
|
||||
font-size: $font-size-s;
|
||||
line-height: pxToRem(21);
|
||||
font-weight: $font-weight-base;
|
||||
font-weight: $font-weight-base;
|
||||
color: $neutral-70;
|
||||
|
||||
p {
|
||||
|
||||
+1
-1
@@ -110,7 +110,7 @@
|
||||
&--small {
|
||||
font-size: pxToRem(14);
|
||||
line-height: pxToRem(21);
|
||||
font-weight: $font-weight-base;
|
||||
font-weight: $font-weight-base;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+12
-4
@@ -50,7 +50,9 @@
|
||||
border: none;
|
||||
border-radius: pxToRem(8);
|
||||
cursor: pointer;
|
||||
transition: color 0.3s ease, background-color 0.3s ease;
|
||||
transition:
|
||||
color 0.3s ease,
|
||||
background-color 0.3s ease;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
|
||||
@@ -89,7 +91,9 @@
|
||||
width: 100%;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transition: opacity 0.4s ease, visibility 0.4s ease;
|
||||
transition:
|
||||
opacity 0.4s ease,
|
||||
visibility 0.4s ease;
|
||||
pointer-events: none;
|
||||
|
||||
&--active {
|
||||
@@ -298,7 +302,9 @@
|
||||
border-radius: pxToRem(8);
|
||||
color: $neutral-40;
|
||||
cursor: pointer;
|
||||
transition: color 0.2s ease, border-color 0.2s ease;
|
||||
transition:
|
||||
color 0.2s ease,
|
||||
border-color 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
color: $neutral-20;
|
||||
@@ -334,7 +340,9 @@
|
||||
height: pxToRem(6);
|
||||
background-color: $neutral-80;
|
||||
border-radius: 50%;
|
||||
transition: background-color 0.2s ease, transform 0.2s ease;
|
||||
transition:
|
||||
background-color 0.2s ease,
|
||||
transform 0.2s ease;
|
||||
}
|
||||
|
||||
&:hover span {
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
@import 'qdrant-pricing-hero';
|
||||
@import 'qdrant-pricing-calculator';
|
||||
@import 'qdrant-pricing-docker-deploy';
|
||||
@import 'qdrant-pricing-doors-a';
|
||||
@import 'qdrant-pricing-doors-b';
|
||||
@import 'qdrant-pricing-marketplaces';
|
||||
@import 'pricing-table';
|
||||
@import 'qdrant-pricing-features';
|
||||
@import 'qdrant-pricing-faq';
|
||||
@import 'qdrant-pricing-comparison';
|
||||
@import 'qdrant-pricing-get-contacted';
|
||||
@import 'pricing-door';
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.pricing-door {
|
||||
position: relative;
|
||||
@@ -0,0 +1,357 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
/* Shared pricing table styles – used by qdrant-pricing-features and qdrant-pricing-comparison */
|
||||
|
||||
.pricing-table {
|
||||
&__table {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
&__table-header {
|
||||
display: flex;
|
||||
|
||||
& .pricing-table__table-cell {
|
||||
border-bottom: 0;
|
||||
&:first-child {
|
||||
border-right: 0;
|
||||
}
|
||||
&:nth-child(2) {
|
||||
border-left: 0.5px solid $neutral-80;
|
||||
border-top-left-radius: pxToRem(8);
|
||||
}
|
||||
&:not(:first-of-type) {
|
||||
border-top: 0.5px solid $neutral-80;
|
||||
}
|
||||
&:last-child {
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
border-top-right-radius: pxToRem(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__table-section {
|
||||
&:first-of-type &-header {
|
||||
border-top: 0.5px solid $neutral-80;
|
||||
border-top-left-radius: pxToRem(8);
|
||||
}
|
||||
|
||||
&:last-of-type.pricing-table__table-section--collapsed &-header {
|
||||
border-bottom-left-radius: pxToRem(8);
|
||||
}
|
||||
|
||||
&-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: $spacer * 1.5 $spacer * 2;
|
||||
background-color: #f5f8ff;
|
||||
border-bottom: 0.5px solid $neutral-80;
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
border-left: 0.5px solid $neutral-80;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
&-title {
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 500;
|
||||
color: $neutral-20;
|
||||
}
|
||||
|
||||
&-rows {
|
||||
transition: max-height 0.35s ease;
|
||||
}
|
||||
|
||||
&--collapsed {
|
||||
.pricing-table__chevron {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__chevron {
|
||||
color: $neutral-20;
|
||||
transition: transform 0.2s ease;
|
||||
}
|
||||
|
||||
&__table-row {
|
||||
display: flex;
|
||||
background-color: $neutral-98;
|
||||
border-bottom: 0.5px solid $neutral-80;
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
border-left: 0.5px solid $neutral-80;
|
||||
}
|
||||
|
||||
&__table-body {
|
||||
.pricing-table__table-section:last-of-type
|
||||
.pricing-table__table-section-rows
|
||||
.pricing-table__table-row:last-child {
|
||||
border-bottom-left-radius: pxToRem(8);
|
||||
}
|
||||
}
|
||||
|
||||
&__table-cell {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: pxToRem(200);
|
||||
padding: $spacer $spacer * 2;
|
||||
font-size: pxToRem(14);
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
text-align: center;
|
||||
|
||||
&:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
&--feature {
|
||||
flex: 1;
|
||||
justify-content: flex-start;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
&--tier {
|
||||
padding: $spacer $spacer * 2;
|
||||
font-size: pxToRem(20);
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.2px;
|
||||
color: $neutral-20;
|
||||
background-color: $neutral-98;
|
||||
border-bottom: 0.5px solid $neutral-80;
|
||||
}
|
||||
|
||||
&--highlight {
|
||||
background-color: #f5f8ff;
|
||||
|
||||
&.pricing-table__table-cell--tier {
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
}
|
||||
}
|
||||
|
||||
&--cta {
|
||||
padding: $spacer * 2 $spacer;
|
||||
background-color: $neutral-98;
|
||||
|
||||
.button {
|
||||
white-space: nowrap;
|
||||
padding: $spacer * 0.5 $spacer * 1.375;
|
||||
font-size: pxToRem(16);
|
||||
}
|
||||
|
||||
.button_outlined {
|
||||
color: $neutral-20;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__table-footer {
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
|
||||
.pricing-table__table-cell {
|
||||
flex: 1;
|
||||
max-width: 12.53rem;
|
||||
|
||||
&:first-child {
|
||||
max-width: 18.74rem;
|
||||
border-right: 0;
|
||||
}
|
||||
&:not(:first-child) {
|
||||
border-bottom: 0.5px solid $neutral-80;
|
||||
}
|
||||
&:nth-child(2) {
|
||||
border-left: 0.5px solid $neutral-80;
|
||||
border-bottom-left-radius: pxToRem(8);
|
||||
}
|
||||
&:last-child {
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
border-bottom-right-radius: pxToRem(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__check {
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
&__x {
|
||||
color: $neutral-60;
|
||||
}
|
||||
|
||||
&__text {
|
||||
font-size: pxToRem(14);
|
||||
color: $neutral-30;
|
||||
|
||||
&--bold {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
&__tier-tabs {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(xl) {
|
||||
&__table {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
&__table-header,
|
||||
&__table-row,
|
||||
&__table-footer {
|
||||
min-width: pxToRem(900);
|
||||
}
|
||||
|
||||
&__table-cell {
|
||||
min-width: pxToRem(160);
|
||||
|
||||
&--feature {
|
||||
min-width: pxToRem(260);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) and (max-width: 1999px) {
|
||||
&__table-cell--cta .button {
|
||||
white-space: normal;
|
||||
text-align: center;
|
||||
height: auto;
|
||||
min-height: pxToRem(40);
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(lg) {
|
||||
&__tier-tabs {
|
||||
display: flex;
|
||||
gap: 0;
|
||||
padding: pxToRem(4);
|
||||
margin-bottom: 0;
|
||||
background-color: $neutral-98;
|
||||
border: 0.5px solid $neutral-80;
|
||||
border-bottom: none;
|
||||
border-radius: pxToRem(8) pxToRem(8) 0 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__tier-tab {
|
||||
flex: 1;
|
||||
padding: $spacer * 0.5 $spacer;
|
||||
font-size: pxToRem(14);
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-radius: pxToRem(8);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&--active {
|
||||
font-weight: 600;
|
||||
color: $neutral-20;
|
||||
background-color: $neutral-94;
|
||||
}
|
||||
}
|
||||
|
||||
&__table {
|
||||
overflow-x: visible;
|
||||
}
|
||||
|
||||
&__table-header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&__table-header,
|
||||
&__table-row,
|
||||
&__table-footer {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&__table-row {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
&__table-cell {
|
||||
min-width: 0;
|
||||
|
||||
&[data-tier-col] {
|
||||
display: none;
|
||||
|
||||
&.pricing-table__table-cell--mobile-active {
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
width: pxToRem(144);
|
||||
border-right: none;
|
||||
}
|
||||
}
|
||||
|
||||
&--feature {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&__table-body {
|
||||
.pricing-table__table-section:last-of-type
|
||||
.pricing-table__table-section-rows
|
||||
.pricing-table__table-row:last-child {
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&__table-footer {
|
||||
width: 100%;
|
||||
|
||||
.pricing-table__table-cell--feature {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.pricing-table__table-cell--cta {
|
||||
flex: 1 1 100%;
|
||||
min-width: 100%;
|
||||
|
||||
&[data-tier-col].pricing-table__table-cell--mobile-active {
|
||||
display: flex;
|
||||
flex: 1 1 100%;
|
||||
width: 100%;
|
||||
min-width: 100%;
|
||||
justify-content: center;
|
||||
border-left: 0.5px solid $neutral-80;
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
border-bottom-left-radius: pxToRem(8);
|
||||
border-bottom-right-radius: pxToRem(8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&__table-section {
|
||||
&:first-of-type &-header {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
&:last-of-type.pricing-table__table-section--collapsed &-header {
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
&-header {
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
&__table-section-header {
|
||||
padding: $spacer;
|
||||
min-height: pxToRem(56);
|
||||
}
|
||||
|
||||
&__table-section-title {
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 500;
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
+143
@@ -0,0 +1,143 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-calculator {
|
||||
position: relative;
|
||||
padding: 6rem 0;
|
||||
background-color: $neutral-94;
|
||||
overflow: hidden;
|
||||
|
||||
&__background {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
&__grid {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-image: linear-gradient(to right, $neutral-90 1px, transparent 1px),
|
||||
linear-gradient(to bottom, $neutral-90 1px, transparent 1px);
|
||||
background-size: 80px 80px;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(to bottom, $neutral-94 0%, transparent 30%, transparent 70%, $neutral-94 100%),
|
||||
linear-gradient(to right, $neutral-94 0%, transparent 15%, transparent 85%, $neutral-94 100%);
|
||||
}
|
||||
}
|
||||
|
||||
&__container {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: $spacer * 1.5;
|
||||
padding: $spacer * 1.5 $spacer * 3.5 $spacer * 1.5 $spacer * 3;
|
||||
background-color: $neutral-98;
|
||||
border: 1px solid $neutral-90;
|
||||
border-radius: pxToRem(8);
|
||||
margin: 0 auto;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
&__icon {
|
||||
flex-shrink: 0;
|
||||
height: pxToRem(100);
|
||||
margin-bottom: -$spacer * 1.5;
|
||||
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(24);
|
||||
font-weight: 600;
|
||||
line-height: 1.3;
|
||||
letter-spacing: -0.5px;
|
||||
margin: 0;
|
||||
color: $neutral-20;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
&__link-wrapper {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $spacer * 0.5;
|
||||
margin: 0;
|
||||
font-size: pxToRem(16);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
&__link-prefix {
|
||||
color: $neutral-30;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
&__link {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
padding: $spacer * 2.5 0;
|
||||
|
||||
&__container {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
padding: $spacer * 1.5 $spacer * 1.25;
|
||||
gap: $spacer * 1.5;
|
||||
}
|
||||
|
||||
&__icon {
|
||||
width: pxToRem(100);
|
||||
height: pxToRem(84);
|
||||
margin: 0;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
align-items: center;
|
||||
gap: $spacer * 0.5;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(24);
|
||||
font-weight: 600;
|
||||
line-height: 1.3;
|
||||
letter-spacing: -0.5px;
|
||||
text-align: center;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
&__link-wrapper {
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
+197
@@ -0,0 +1,197 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-comparison-hero {
|
||||
position: relative;
|
||||
padding: $spacer * 5 0 $spacer * 3.5;
|
||||
background-color: $neutral-94;
|
||||
overflow: hidden;
|
||||
|
||||
&__background {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
background: url('/img/prices-background.svg') top center / 100% auto no-repeat;
|
||||
}
|
||||
|
||||
&__grid {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 400px;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(18, 80px);
|
||||
grid-template-rows: repeat(5, 80px);
|
||||
justify-content: center;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(to bottom, rgba($neutral-94, 0) 0%, $neutral-94 100%),
|
||||
linear-gradient(to right, $neutral-94 0%, transparent 15%, transparent 85%, $neutral-94 100%);
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
max-width: pxToRem(730);
|
||||
margin: 0 auto;
|
||||
padding: 0 $spacer;
|
||||
background: linear-gradient(to right, rgba($neutral-94, 0) 8%, $neutral-94 50%, rgba($neutral-94, 0) 92%);
|
||||
}
|
||||
|
||||
&__badge {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $spacer * 0.5;
|
||||
padding: $spacer * 0.5 $spacer;
|
||||
margin-bottom: $spacer * 1.5;
|
||||
background-color: $neutral-98;
|
||||
border: 1px solid $neutral-90;
|
||||
border-radius: pxToRem(8);
|
||||
|
||||
svg {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
font-size: pxToRem(16);
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
}
|
||||
}
|
||||
|
||||
&__badge-link {
|
||||
align-self: flex-start;
|
||||
width: fit-content;
|
||||
font-size: pxToRem(16);
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
height: calc(1ex + 3px);
|
||||
}
|
||||
}
|
||||
|
||||
&__title {
|
||||
margin: 0 0 $spacer;
|
||||
font-size: pxToRem(56);
|
||||
font-weight: 600;
|
||||
line-height: 1.1;
|
||||
letter-spacing: -0.5px;
|
||||
color: $neutral-20;
|
||||
}
|
||||
|
||||
&__description {
|
||||
margin: 0 0 $spacer;
|
||||
font-size: pxToRem(18);
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
&__actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: $spacer * 1.5;
|
||||
}
|
||||
|
||||
&__link {
|
||||
width: fit-content;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: pxToRem(2);
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 500;
|
||||
line-height: 1.5;
|
||||
color: $primary-50;
|
||||
text-decoration: none;
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
height: calc(1ex + 3px);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $primary-50;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(lg) {
|
||||
padding: $spacer * 3 0 $spacer * 2;
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(40);
|
||||
}
|
||||
|
||||
&__description {
|
||||
font-size: pxToRem(16);
|
||||
}
|
||||
|
||||
&__actions {
|
||||
flex-direction: column;
|
||||
gap: $spacer;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
padding: $spacer * 2.5 0 $spacer * 2;
|
||||
|
||||
&__background {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&__grid {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&__content {
|
||||
background: none;
|
||||
}
|
||||
|
||||
&__badge {
|
||||
max-width: pxToRem(280);
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
margin-bottom: $spacer;
|
||||
}
|
||||
|
||||
&__title {
|
||||
margin: 0 0 $spacer;
|
||||
font-size: pxToRem(40);
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
|
||||
&__description {
|
||||
margin: 0 0 $spacer;
|
||||
font-size: pxToRem(16);
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
&__actions {
|
||||
flex-direction: column;
|
||||
gap: $spacer * 1.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.qdrant-pricing-comparison {
|
||||
padding: 0 0 $spacer * 5;
|
||||
background-color: $neutral-94;
|
||||
|
||||
@include media-breakpoint-down(lg) {
|
||||
padding: 0 0 $spacer * 4;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-doors-a {
|
||||
padding-bottom: $spacer * 4;
|
||||
+366
@@ -0,0 +1,366 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-doors-b {
|
||||
padding: 0 0 $spacer * 2;
|
||||
background-color: $neutral-94;
|
||||
|
||||
&__tabs {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: $spacer * 0.5;
|
||||
padding: 4px;
|
||||
margin-bottom: $spacer * 2;
|
||||
background-color: $neutral-98;
|
||||
border: 0.5px solid $neutral-80;
|
||||
border-radius: pxToRem(8);
|
||||
width: fit-content;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
&__tab {
|
||||
padding: $spacer * 0.5 $spacer * 1.5;
|
||||
min-width: pxToRem(160);
|
||||
height: pxToRem(40);
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-radius: pxToRem(8);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba($neutral-94, 0.5);
|
||||
}
|
||||
|
||||
&--active {
|
||||
font-weight: 600;
|
||||
color: $neutral-20;
|
||||
background-color: $neutral-94;
|
||||
}
|
||||
}
|
||||
|
||||
&__doors-wrapper {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__doors {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: auto auto 1fr auto;
|
||||
width: 100%;
|
||||
max-width: pxToRem(1110);
|
||||
margin: 0 auto;
|
||||
|
||||
&--hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&[data-doors-tab='on-premise'] {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-rows: auto auto 1fr 1fr auto;
|
||||
max-width: pxToRem(1300);
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
|
||||
&__door {
|
||||
display: grid;
|
||||
grid-template-rows: subgrid;
|
||||
grid-row: span 4;
|
||||
background-color: $neutral-98;
|
||||
|
||||
[data-doors-tab='on-premise'] & {
|
||||
grid-row: span 5;
|
||||
grid-template-rows: subgrid;
|
||||
}
|
||||
border: 0.5px solid $neutral-80;
|
||||
border-right: none;
|
||||
|
||||
&:first-child {
|
||||
border-radius: pxToRem(8) 0 0 pxToRem(8);
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
border-radius: 0 pxToRem(8) pxToRem(8) 0;
|
||||
}
|
||||
|
||||
&--paid {
|
||||
/* Don't add full border - it doubles with neighbors; use background for emphasis */
|
||||
background-color: #f5f8ff;
|
||||
}
|
||||
}
|
||||
|
||||
&__heading {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $spacer * 0.5;
|
||||
padding: $spacer * 1.5 $spacer * 2;
|
||||
border-bottom: 0.5px solid $neutral-80;
|
||||
min-height: pxToRem(135);
|
||||
|
||||
&:has(.qdrant-pricing-doors-b__badge) {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
min-height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(24);
|
||||
font-weight: 600;
|
||||
line-height: 1.3;
|
||||
letter-spacing: -0.5px;
|
||||
color: $neutral-20;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&__badge {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: pxToRem(6);
|
||||
padding: pxToRem(4) $spacer * 0.5;
|
||||
background-color: $neutral-94;
|
||||
border: 0.5px solid $neutral-80;
|
||||
border-radius: pxToRem(8);
|
||||
flex-shrink: 0;
|
||||
|
||||
span {
|
||||
font-size: pxToRem(14);
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
svg {
|
||||
display: block;
|
||||
width: pxToRem(20);
|
||||
height: pxToRem(20);
|
||||
}
|
||||
}
|
||||
|
||||
&__pricing {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 500;
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
&__pricing-main {
|
||||
display: block;
|
||||
}
|
||||
|
||||
&__pricing-note {
|
||||
display: block;
|
||||
}
|
||||
|
||||
&__target {
|
||||
padding: $spacer $spacer * 2;
|
||||
border-bottom: 0.5px solid $neutral-80;
|
||||
min-height: pxToRem(80);
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
}
|
||||
}
|
||||
|
||||
&__features {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $spacer * 0.5;
|
||||
padding: $spacer $spacer * 2;
|
||||
border-bottom: 0.5px solid $neutral-80;
|
||||
min-height: pxToRem(168);
|
||||
|
||||
[data-doors-tab='on-premise'] & {
|
||||
min-height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
&__feature-group-label {
|
||||
margin: 0;
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 500;
|
||||
line-height: 1.5;
|
||||
color: $neutral-20;
|
||||
}
|
||||
|
||||
&__feature-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $spacer * 0.5;
|
||||
}
|
||||
|
||||
&__feature-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: $spacer * 0.5;
|
||||
font-size: pxToRem(14);
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
|
||||
span {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
&__check-icon {
|
||||
flex-shrink: 0;
|
||||
margin-top: 3px;
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
&__marketplace {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: $spacer * 0.5;
|
||||
}
|
||||
|
||||
&__marketplace-label {
|
||||
font-size: pxToRem(14);
|
||||
font-weight: 500;
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
&__marketplace-logos {
|
||||
display: flex;
|
||||
gap: $spacer * 0.5;
|
||||
}
|
||||
|
||||
&__marketplace-logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: pxToRem(32);
|
||||
height: pxToRem(32);
|
||||
border: 0.5px solid $neutral-80;
|
||||
border-radius: pxToRem(3);
|
||||
background-color: $neutral-100;
|
||||
|
||||
svg {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
&__contact-link {
|
||||
align-self: flex-start;
|
||||
width: fit-content;
|
||||
font-size: pxToRem(16);
|
||||
}
|
||||
|
||||
&__cta {
|
||||
padding: $spacer * 1.5 $spacer * 2;
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
&__cta-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: pxToRem(40);
|
||||
padding: $spacer * 0.5 $spacer * 1.375;
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 600;
|
||||
line-height: 1.5;
|
||||
text-decoration: none;
|
||||
border-radius: pxToRem(8);
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&--outlined {
|
||||
color: $neutral-20;
|
||||
background-color: transparent;
|
||||
border: 1px solid $neutral-60;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba($neutral-90, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
&--contained {
|
||||
color: $neutral-100;
|
||||
background: linear-gradient(180deg, $primary-50 0%, #be003a 100%);
|
||||
border: none;
|
||||
box-shadow: inset 0px 2px 1px 0px #ff516b;
|
||||
|
||||
&:hover {
|
||||
filter: brightness(1.05);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(lg) {
|
||||
padding: 0 0 $spacer * 2;
|
||||
|
||||
&__tabs {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__tab {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&__doors-wrapper {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__doors {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
grid-template-columns: unset;
|
||||
grid-template-rows: unset;
|
||||
gap: $spacer * 1.5;
|
||||
|
||||
&--hidden {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&__door {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
grid-row: unset;
|
||||
grid-template-rows: unset;
|
||||
border-radius: pxToRem(8);
|
||||
border: 0.5px solid $neutral-80;
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
|
||||
&:first-child,
|
||||
&:last-child {
|
||||
border-radius: pxToRem(8);
|
||||
border-right: 0.5px solid $neutral-80;
|
||||
}
|
||||
}
|
||||
|
||||
&__heading,
|
||||
&__target,
|
||||
&__features {
|
||||
min-height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
padding: 0 0 $spacer * 2;
|
||||
}
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-faq {
|
||||
padding: $spacer * 5 0 $spacer * 2.5;
|
||||
background-color: $neutral-94;
|
||||
|
||||
&__title {
|
||||
margin-bottom: $spacer * 5;
|
||||
font-size: pxToRem(56);
|
||||
font-weight: 600;
|
||||
line-height: 1.1;
|
||||
letter-spacing: -0.5px;
|
||||
color: $neutral-20;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&__questions {
|
||||
max-width: pxToRem(800);
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(lg) {
|
||||
padding: $spacer * 4 0 $spacer * 2;
|
||||
|
||||
&__title {
|
||||
margin-bottom: $spacer * 3;
|
||||
font-size: pxToRem(40);
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
padding: $spacer * 2.5 0 $spacer * 2;
|
||||
|
||||
&__title {
|
||||
margin-bottom: $spacer * 3;
|
||||
font-size: pxToRem(40);
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
letter-spacing: -0.5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
&__questions {
|
||||
margin: 0 $spacer * 1.25;
|
||||
}
|
||||
}
|
||||
}
|
||||
+112
@@ -0,0 +1,112 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-features {
|
||||
padding: $spacer * 2.5 0 $spacer * 7.5;
|
||||
background-color: $neutral-94;
|
||||
|
||||
&__header {
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
margin-bottom: $spacer * 3.5;
|
||||
}
|
||||
|
||||
&__title {
|
||||
margin: 0;
|
||||
font-size: pxToRem(40);
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
letter-spacing: -0.5px;
|
||||
color: $neutral-20;
|
||||
}
|
||||
|
||||
&__tabs {
|
||||
display: flex;
|
||||
gap: $spacer * 0.5;
|
||||
padding: pxToRem(4);
|
||||
background-color: $neutral-98;
|
||||
border: 1px solid $neutral-90;
|
||||
border-radius: pxToRem(8);
|
||||
}
|
||||
|
||||
&__table-wrapper {
|
||||
&--hidden {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&__tab {
|
||||
padding: $spacer * 0.5 $spacer * 1.5;
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-radius: pxToRem(8);
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&--active {
|
||||
font-weight: 600;
|
||||
color: $neutral-20;
|
||||
background-color: $neutral-94;
|
||||
}
|
||||
|
||||
&:hover:not(&--active) {
|
||||
background-color: $neutral-94;
|
||||
}
|
||||
}
|
||||
|
||||
&__compare {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: $spacer * 2.5;
|
||||
|
||||
.button {
|
||||
padding: $spacer * 0.5 $spacer * 1.375;
|
||||
}
|
||||
|
||||
.button_outlined {
|
||||
color: $neutral-20;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(lg) {
|
||||
padding: $spacer * 2.5 0 $spacer * 4;
|
||||
|
||||
&__tabs {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&__tab {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
&__header {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: $spacer * 1.5;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(32);
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
padding: $spacer * 2.5 0 $spacer * 4;
|
||||
|
||||
&__header {
|
||||
margin-bottom: $spacer * 2.5;
|
||||
gap: $spacer;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(40);
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use '../mixins/get-contacted' as get-contacted;
|
||||
@use '../../helpers/functions' as *;
|
||||
@use '../../mixins/get-contacted' as get-contacted;
|
||||
|
||||
.qdrant-pricing-get-contacted {
|
||||
@include get-contacted.base($spacer * 2.5, $spacer * 2.5, $spacer * 5, $spacer * 4, pxToRem(350));
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
@use '../../helpers/functions' as *;
|
||||
|
||||
.qdrant-pricing-hero {
|
||||
position: relative;
|
||||
padding: $spacer * 5 0 $spacer * 4;
|
||||
background-color: $neutral-94;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
|
||||
&__background {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
pointer-events: none;
|
||||
background: url('/img/prices-background.svg') top center / 100% auto no-repeat;
|
||||
}
|
||||
|
||||
&__grid {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 400px;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(18, 80px);
|
||||
grid-template-rows: repeat(5, 80px);
|
||||
justify-content: center;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: linear-gradient(to bottom, rgba($neutral-94, 0) 0%, $neutral-94 100%),
|
||||
linear-gradient(to right, $neutral-94 0%, transparent 15%, transparent 85%, $neutral-94 100%);
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
max-width: pxToRem(730);
|
||||
margin: 0 auto;
|
||||
padding: 0 $spacer;
|
||||
background: linear-gradient(to right, rgba($neutral-94, 0) 8%, $neutral-94 50%, rgba($neutral-94, 0) 92%);
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(56);
|
||||
font-weight: 600;
|
||||
line-height: 1.1;
|
||||
letter-spacing: -0.5px;
|
||||
margin-bottom: $spacer;
|
||||
color: $neutral-20;
|
||||
}
|
||||
|
||||
&__description {
|
||||
margin-bottom: $spacer;
|
||||
font-size: pxToRem(18);
|
||||
line-height: 1.5;
|
||||
color: $neutral-30;
|
||||
}
|
||||
|
||||
&__actions {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: $spacer * 1.5;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
&__button {
|
||||
min-width: pxToRem(166);
|
||||
}
|
||||
|
||||
&__link {
|
||||
width: fit-content;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: $spacer * 0.25;
|
||||
font-size: pxToRem(16);
|
||||
font-weight: 500;
|
||||
color: $primary-50;
|
||||
text-decoration: none;
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
height: calc(1ex + 3px);
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(lg) {
|
||||
padding: $spacer * 3 0 $spacer * 2.5;
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(40);
|
||||
}
|
||||
|
||||
&__description {
|
||||
font-size: pxToRem(16);
|
||||
}
|
||||
|
||||
&__actions {
|
||||
flex-direction: column;
|
||||
gap: $spacer;
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
padding: $spacer * 2.5 0 $spacer * 2;
|
||||
|
||||
&__background {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&__grid {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&__content {
|
||||
background: none;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: pxToRem(40);
|
||||
font-weight: 600;
|
||||
line-height: 1.2;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
|
||||
&__description {
|
||||
font-size: pxToRem(16);
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
@use '../helpers/functions' as *;
|
||||
@use '../mixins/marketplaces' as marketplaces;
|
||||
@use '../../helpers/functions' as *;
|
||||
@use '../../mixins/marketplaces' as marketplaces;
|
||||
|
||||
.qdrant-pricing-marketplaces {
|
||||
@include marketplaces.base(
|
||||
@@ -1,4 +1,5 @@
|
||||
import scrollHandler from './scroll-handler';
|
||||
import { initTabSync } from './tab-sync';
|
||||
import { XXL_BREAKPOINT } from './constants';
|
||||
import { addUTMToLinks, initGoToTopButton, persistUTMParams } from './helpers';
|
||||
import { handleSegmentReady } from './segment-helpers';
|
||||
@@ -122,6 +123,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
});
|
||||
|
||||
initGoToTopButton('#scrollToTopBtn');
|
||||
initTabSync();
|
||||
|
||||
if (document.getElementById('TableOfContents') && document.querySelector('.qdrant-post__body')) {
|
||||
new TableOfContents('#TableOfContents', '.qdrant-post__body');
|
||||
@@ -157,6 +159,20 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
el.addEventListener('click', toggleAccordion);
|
||||
});
|
||||
|
||||
// Pricing doors tabs
|
||||
const pricingDoorsTabs = document.querySelectorAll('.qdrant-pricing-doors-b__tab');
|
||||
const pricingDoorsContainers = document.querySelectorAll('[data-doors-tab]');
|
||||
pricingDoorsTabs.forEach((tab) => {
|
||||
tab.addEventListener('click', () => {
|
||||
pricingDoorsTabs.forEach((t) => t.classList.remove('qdrant-pricing-doors-b__tab--active'));
|
||||
tab.classList.add('qdrant-pricing-doors-b__tab--active');
|
||||
const targetTab = tab.dataset.tab;
|
||||
pricingDoorsContainers.forEach((container) => {
|
||||
container.classList.toggle('qdrant-pricing-doors-b__doors--hidden', container.dataset.doorsTab !== targetTab);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// scroll to anchors:
|
||||
let offset = DOCS_HEADER_OFFSET;
|
||||
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// Pricing features tabs (Managed / On-Premise)
|
||||
function expandPricingTableSections(table) {
|
||||
if (!table) return;
|
||||
table.querySelectorAll('.pricing-table__table-section').forEach((section) => {
|
||||
const rows = section.querySelector('.pricing-table__table-section-rows');
|
||||
if (!rows) return;
|
||||
section.classList.remove('pricing-table__table-section--collapsed');
|
||||
rows.style.maxHeight = rows.scrollHeight + 'px';
|
||||
});
|
||||
}
|
||||
|
||||
const featuresTabs = document.querySelectorAll('.qdrant-pricing-features__tab');
|
||||
const featuresTableWrappers = document.querySelectorAll('[data-features-tab]');
|
||||
featuresTabs.forEach((tab) => {
|
||||
tab.addEventListener('click', () => {
|
||||
featuresTabs.forEach((t) => t.classList.remove('qdrant-pricing-features__tab--active'));
|
||||
tab.classList.add('qdrant-pricing-features__tab--active');
|
||||
const targetTab = tab.dataset.tab;
|
||||
featuresTableWrappers.forEach((wrapper) => {
|
||||
wrapper.classList.toggle(
|
||||
'qdrant-pricing-features__table-wrapper--hidden',
|
||||
wrapper.dataset.featuresTab !== targetTab
|
||||
);
|
||||
});
|
||||
const visibleWrapper = document.querySelector(`[data-features-tab="${targetTab}"]`);
|
||||
const visibleTable = visibleWrapper?.querySelector('.pricing-table');
|
||||
requestAnimationFrame(() => expandPricingTableSections(visibleTable));
|
||||
});
|
||||
});
|
||||
|
||||
// Universal pricing table: mobile tier tabs + section collapse/expand
|
||||
document.querySelectorAll('.pricing-table').forEach((table) => {
|
||||
const tierTabs = table.querySelectorAll('.pricing-table__tier-tab');
|
||||
if (tierTabs.length) {
|
||||
const updateMobileTierColumns = (activeTier) => {
|
||||
table.querySelectorAll('[data-tier-col]').forEach((col) => {
|
||||
col.classList.remove('pricing-table__table-cell--mobile-active');
|
||||
});
|
||||
table.querySelectorAll(`[data-tier-col="${activeTier}"]`).forEach((col) => {
|
||||
col.classList.add('pricing-table__table-cell--mobile-active');
|
||||
});
|
||||
};
|
||||
updateMobileTierColumns(tierTabs[0].dataset.tier);
|
||||
tierTabs.forEach((tab) => {
|
||||
tab.addEventListener('click', () => {
|
||||
tierTabs.forEach((t) => t.classList.remove('pricing-table__tier-tab--active'));
|
||||
tab.classList.add('pricing-table__tier-tab--active');
|
||||
updateMobileTierColumns(tab.dataset.tier);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
const isInHiddenWrapper = table.closest('[data-features-tab]')?.classList.contains('qdrant-pricing-features__table-wrapper--hidden');
|
||||
table.querySelectorAll('.pricing-table__table-section').forEach((section) => {
|
||||
const header = section.querySelector('.pricing-table__table-section-header');
|
||||
const rows = section.querySelector('.pricing-table__table-section-rows');
|
||||
if (!header || !rows) return;
|
||||
|
||||
header.addEventListener('click', () => {
|
||||
const isCollapsed = section.classList.contains('pricing-table__table-section--collapsed');
|
||||
if (isCollapsed) {
|
||||
rows.style.overflow = 'hidden';
|
||||
rows.style.maxHeight = rows.scrollHeight + 'px';
|
||||
section.classList.remove('pricing-table__table-section--collapsed');
|
||||
} else {
|
||||
rows.style.overflow = 'hidden';
|
||||
rows.style.maxHeight = rows.scrollHeight + 'px';
|
||||
rows.offsetHeight;
|
||||
rows.style.maxHeight = '0px';
|
||||
section.classList.add('pricing-table__table-section--collapsed');
|
||||
}
|
||||
});
|
||||
|
||||
rows.addEventListener('transitionend', () => {
|
||||
if (!section.classList.contains('pricing-table__table-section--collapsed')) {
|
||||
rows.style.removeProperty('max-height');
|
||||
rows.style.removeProperty('overflow');
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* Synchronizes tab switching across tab groups that share the same data-tab-sync value.
|
||||
* Add data-tab-sync="group-id" to the tab container (parent of tab buttons).
|
||||
* Tab buttons must have data-tab with matching values across synchronized groups.
|
||||
* Programmatic clicks (isTrusted: false) are ignored to avoid sync loops.
|
||||
*
|
||||
* Optional data-tab-sync-direction:
|
||||
* - "down-only": only sync to tab groups that appear later in the DOM (below the clicked one).
|
||||
* E.g. with A, B, C: A syncs B and C; B syncs C; C syncs none.
|
||||
*
|
||||
* @example Basic usage (bidirectional sync)
|
||||
* <div data-tab-sync="my-tabs">
|
||||
* <button data-tab="cloud">Cloud</button>
|
||||
* <button data-tab="on-prem">On-Premise</button>
|
||||
* </div>
|
||||
* <div data-tab-sync="my-tabs">
|
||||
* <button data-tab="cloud">Cloud</button>
|
||||
* <button data-tab="on-prem">On-Premise</button>
|
||||
* </div>
|
||||
*
|
||||
* @example Down-only (sync flows downward only)
|
||||
* <div data-tab-sync="pricing" data-tab-sync-direction="down-only">
|
||||
* <button data-tab="cloud">Cloud</button>
|
||||
* <button data-tab="on-prem">On-Premise</button>
|
||||
* </div>
|
||||
* <div data-tab-sync="pricing" data-tab-sync-direction="down-only">
|
||||
* <button data-tab="cloud">Cloud</button>
|
||||
* <button data-tab="on-prem">On-Premise</button>
|
||||
* </div>
|
||||
*/
|
||||
export function initTabSync() {
|
||||
document.addEventListener(
|
||||
'click',
|
||||
(e) => {
|
||||
if (!e.isTrusted) return;
|
||||
|
||||
const tab = e.target.closest('[data-tab-sync] [data-tab]');
|
||||
if (!tab) return;
|
||||
|
||||
const container = tab.closest('[data-tab-sync]');
|
||||
const syncGroup = container?.getAttribute('data-tab-sync');
|
||||
const tabId = tab.getAttribute('data-tab');
|
||||
if (!syncGroup || !tabId) return;
|
||||
|
||||
const groups = [...document.querySelectorAll(`[data-tab-sync="${syncGroup}"]`)];
|
||||
const hasDownOnly = groups.some((g) => g.getAttribute('data-tab-sync-direction') === 'down-only');
|
||||
|
||||
const shouldSyncTo = (group) => {
|
||||
if (group === container) return false;
|
||||
if (hasDownOnly) {
|
||||
const groupIsBelow = !!(container.compareDocumentPosition(group) & Node.DOCUMENT_POSITION_FOLLOWING);
|
||||
if (!groupIsBelow) return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
groups.forEach((group) => {
|
||||
if (!shouldSyncTo(group)) return;
|
||||
const matchingTab = group.querySelector(`[data-tab="${tabId}"]`);
|
||||
if (matchingTab) matchingTab.click();
|
||||
});
|
||||
},
|
||||
true,
|
||||
);
|
||||
}
|
||||
@@ -1,25 +1,33 @@
|
||||
{{ with (.Site.GetPage "/about-us/about-us-values") }}
|
||||
<section class="about-us-values">
|
||||
<div class="container">
|
||||
<div class="about-us-values__container">
|
||||
<div class="row g-4 justify-content-center about-us-values__cards">
|
||||
{{ range .Params.values }}
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
{{ if .link }}
|
||||
<a href="{{ .link }}" target="{{ if .target }}_blank{{ else }}_self{{ end }}" class="card about-us-values__card">
|
||||
<img class="about-us-values__card-logo" src="{{ .icon.src }}" alt="{{ .icon.alt }}">
|
||||
<h6 class="about-us-values__card-title">{{ .title }}</h6>
|
||||
</a>
|
||||
{{ else }}
|
||||
<div class="card about-us-values__card">
|
||||
<img class="about-us-values__card-logo" src="{{ .icon.src }}" alt="{{ .icon.alt }}">
|
||||
<h6 class="about-us-values__card-title">{{ .title }}</h6>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-us-values__container">
|
||||
<div class="row g-4 justify-content-center about-us-values__cards">
|
||||
{{ range .Params.values }}
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
{{ if .link }}
|
||||
<a
|
||||
href="{{ .link }}"
|
||||
target="{{ if .target }}
|
||||
_blank
|
||||
{{ else }}
|
||||
_self
|
||||
{{ end }}"
|
||||
class="card about-us-values__card"
|
||||
>
|
||||
<img class="about-us-values__card-logo" src="{{ .icon.src }}" alt="{{ .icon.alt }}" />
|
||||
<h6 class="about-us-values__card-title">{{ .title }}</h6>
|
||||
</a>
|
||||
{{ else }}
|
||||
<div class="card about-us-values__card">
|
||||
<img class="about-us-values__card-logo" src="{{ .icon.src }}" alt="{{ .icon.alt }}" />
|
||||
<h6 class="about-us-values__card-title">{{ .title }}</h6>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
@@ -5,16 +5,13 @@
|
||||
<div class="col-12 col-lg-5">
|
||||
{{ partial "tag" . }}
|
||||
|
||||
|
||||
<h3 class="ai-agents-webinar__title">{{ .Params.title }}</h3>
|
||||
<p class="ai-agents-webinar__description">{{ .Params.description }}</p>
|
||||
<a class="link link_md" href="{{ .Params.link.url }}" target="_blank">{{ .Params.link.text }}</a>
|
||||
</div>
|
||||
<div class="col-12 col-lg-7 d-flex justify-content-center justify-content-lg-end">
|
||||
<img
|
||||
class="ai-agents-webinar__image"
|
||||
src="{{ .Params.image.src }}"
|
||||
alt="{{ .Params.image.alt }}"
|
||||
/>
|
||||
<img class="ai-agents-webinar__image" src="{{ .Params.image.src }}" alt="{{ .Params.image.alt }}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -8,19 +8,29 @@
|
||||
{{ range .Params.logo.logoCards }}
|
||||
<div class="col-12 col-lg-6">
|
||||
<div class="card">
|
||||
<div class="brand-resources-content__logos-logo{{ if .darkBackground }} brand-resources-content__logos-logo_dark-bg{{ end }}">
|
||||
<div
|
||||
class="brand-resources-content__logos-logo{{ if .darkBackground }}
|
||||
brand-resources-content__logos-logo_dark-bg
|
||||
{{ end }}"
|
||||
>
|
||||
<img src="{{ .logo.src }}" alt="{{ .logo.alt }}" />
|
||||
</div>
|
||||
<h6 class="brand-resources-content__logos-title">{{ .title }}</h6>
|
||||
<div class="d-flex gap-3">
|
||||
{{ $svgText := lower .link.svg.text }}
|
||||
{{ $pngText := lower .link.png.text }}
|
||||
<a class="brand-resources-content__logos-link link link_md" href="{{ .link.svg.url }}"
|
||||
{{ if in $svgText "download" }}download{{ end }}
|
||||
>{{ .link.svg.text }}</a>
|
||||
<a class="brand-resources-content__logos-link link link_md" href="{{ .link.png.url }}"
|
||||
{{ if in $pngText "download" }}download{{ end }}
|
||||
>{{ .link.png.text }}</a>
|
||||
<a
|
||||
class="brand-resources-content__logos-link link link_md"
|
||||
href="{{ .link.svg.url }}"
|
||||
{{ if in $svgText "download" }}download{{ end }}
|
||||
>{{ .link.svg.text }}</a
|
||||
>
|
||||
<a
|
||||
class="brand-resources-content__logos-link link link_md"
|
||||
href="{{ .link.png.url }}"
|
||||
{{ if in $pngText "download" }}download{{ end }}
|
||||
>{{ .link.png.text }}</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -31,19 +41,29 @@
|
||||
{{ range .Params.logo.logomarkCards }}
|
||||
<div class="col-12 col-lg-4">
|
||||
<div class="card">
|
||||
<div class="brand-resources-content__logos-logo{{ if .darkBackground }} brand-resources-content__logos-logo_dark-bg{{ end }}">
|
||||
<div
|
||||
class="brand-resources-content__logos-logo{{ if .darkBackground }}
|
||||
brand-resources-content__logos-logo_dark-bg
|
||||
{{ end }}"
|
||||
>
|
||||
<img src="{{ .logo.src }}" alt="{{ .logo.alt }}" />
|
||||
</div>
|
||||
<h6 class="brand-resources-content__logos-title">{{ .title }}</h6>
|
||||
<div class="d-flex flex-column flex-xl-row gap-2 gap-xl-3">
|
||||
{{ $svgText := lower .link.svg.text }}
|
||||
{{ $pngText := lower .link.png.text }}
|
||||
<a class="brand-resources-content__logos-link link link_md" href="{{ .link.svg.url }}"
|
||||
{{ if in $svgText "download" }}download{{ end }}
|
||||
>{{ .link.svg.text }}</a>
|
||||
<a class="brand-resources-content__logos-link link link_md" href="{{ .link.png.url }}"
|
||||
{{ if in $pngText "download" }}download{{ end }}
|
||||
>{{ .link.png.text }}</a>
|
||||
<a
|
||||
class="brand-resources-content__logos-link link link_md"
|
||||
href="{{ .link.svg.url }}"
|
||||
{{ if in $svgText "download" }}download{{ end }}
|
||||
>{{ .link.svg.text }}</a
|
||||
>
|
||||
<a
|
||||
class="brand-resources-content__logos-link link link_md"
|
||||
href="{{ .link.png.url }}"
|
||||
{{ if in $pngText "download" }}download{{ end }}
|
||||
>{{ .link.png.text }}</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -74,7 +94,9 @@
|
||||
<p class="brand-resources-content__typography-example">{{ .Params.typography.example }}</p>
|
||||
<div>
|
||||
<p class="brand-resources-content__typography-specimen">{{ .Params.typography.specimen | safeHTML }}</p>
|
||||
<a class="link link_md" href="{{ .Params.typography.link.url }}" target="_blank" rel="nofollow">{{ .Params.typography.link.text }}</a>
|
||||
<a class="link link_md" href="{{ .Params.typography.link.url }}" target="_blank" rel="nofollow"
|
||||
>{{ .Params.typography.link.text }}</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="callout">
|
||||
<div class="callout__square-grid-overlay"></div>
|
||||
<div class="callout__illustration" style="background-image: url('{{ .Params.image.src }}');"></div>
|
||||
<div class="callout__lights-overlay"></div>
|
||||
<div class="callout__square-grid-overlay"></div>
|
||||
<div class="callout__illustration" style="background-image: url('{{ .Params.image.src }}');"></div>
|
||||
<div class="callout__lights-overlay"></div>
|
||||
<div class="callout__content">
|
||||
<h5 class="callout__title">{{ .Params.title | safeHTML }}</h5>
|
||||
<div class="callout__description">{{ .Params.description | safeHTML }}</div>
|
||||
|
||||
@@ -18,5 +18,3 @@
|
||||
<div class="cloud-inference-cluster__overlay-right"></div>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
<h3 class="cloud-inference-features__title">{{ .Params.title }}</h3>
|
||||
<div class="row g-4">
|
||||
{{ range .Params.cards }}
|
||||
<div class="col-12 col-lg-4">
|
||||
<div class="card cloud-inference-features__card">
|
||||
<img class="cloud-inference-features__card-icon" src="{{ .icon.src }}" alt="{{ .icon.alt }}" />
|
||||
<h3 class="cloud-inference-features__card-title">{{ .title }}</h3>
|
||||
<p class="cloud-inference-features__card-description">{{ .description }}</p>
|
||||
<div class="col-12 col-lg-4">
|
||||
<div class="card cloud-inference-features__card">
|
||||
<img class="cloud-inference-features__card-icon" src="{{ .icon.src }}" alt="{{ .icon.alt }}" />
|
||||
<h3 class="cloud-inference-features__card-title">{{ .title }}</h3>
|
||||
<p class="cloud-inference-features__card-description">{{ .description }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -4,15 +4,16 @@
|
||||
<div class="d-flex flex-column flex-xl-row">
|
||||
{{ partial "course/sidebar-menu.html" (dict "context" .) }}
|
||||
|
||||
|
||||
<div class="documentation__content">
|
||||
<div class="documentation__content-wrapper">
|
||||
<div class="documentation__article-wrapper">
|
||||
|
||||
{{ if not (eq .RelPermalink "/course/") }}
|
||||
{{ partial "documentation/breadcrumbs" . }}
|
||||
{{ end }}
|
||||
|
||||
<article class="documentation-article">
|
||||
|
||||
<article class="documentation-article">
|
||||
{{ partial "article-content.html" . }}
|
||||
|
||||
{{ $parent := .Parent }}
|
||||
@@ -71,12 +72,11 @@
|
||||
{{ $currentWeight = int $currentPage.Params.weight }}
|
||||
{{ end }}
|
||||
|
||||
<a
|
||||
href="{{ $next.RelPermalink }}"
|
||||
class="button button_contained button_sm"
|
||||
>
|
||||
|
||||
<a href="{{ $next.RelPermalink }}" class="button button_contained button_sm">
|
||||
{{ if eq $currentWeight $maxWeight }}
|
||||
{{ $subject.Params.content.nextDay }} {{ .Parent.Title }}
|
||||
{{ $subject.Params.content.nextDay }}
|
||||
{{ .Parent.Title }}
|
||||
{{ else }}
|
||||
{{ $subject.Params.content.nextButton }}
|
||||
{{ end }}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
{{ $currentNode := .context }}
|
||||
|
||||
|
||||
<div class="docs-menu">
|
||||
<div id="sidebar" class="docs-menu__content">
|
||||
<nav>
|
||||
<div class="docs-menu__links-group">
|
||||
|
||||
|
||||
<!--
|
||||
If page is top-level, like /course we want to show sidebar with sub-pages of /course
|
||||
If page is not top-level, like /course/essentials we want to show sidebar with sub-pages of /course/essentials
|
||||
@@ -18,29 +17,32 @@
|
||||
{{ $subject := $currentNode }}
|
||||
|
||||
{{ if eq $numLevels 1 }}
|
||||
{{ $subject = $currentNode }} <!-- top-level, `/course` -->
|
||||
{{ $subject = $currentNode }}
|
||||
<!-- top-level, `/course` -->
|
||||
{{ else if eq $numLevels 2 }}
|
||||
{{ $subject = $currentNode }} <!-- not top-level, `/course/essentials` -->
|
||||
{{ $subject = $currentNode }}
|
||||
<!-- not top-level, `/course/essentials` -->
|
||||
{{ else if eq $numLevels 3 }}
|
||||
{{ $subject = $currentNode.Parent }} <!-- not top-level, `/course/essentials/day-0` -->
|
||||
{{ $subject = $currentNode.Parent }}
|
||||
<!-- not top-level, `/course/essentials/day-0` -->
|
||||
{{ else if eq $numLevels 4 }}
|
||||
{{ $subject = $currentNode.Parent.Parent }} <!-- not top-level, `/course/essentials/day-0/introduction` -->
|
||||
{{ $subject = $currentNode.Parent.Parent }}
|
||||
<!-- not top-level, `/course/essentials/day-0/introduction` -->
|
||||
{{ else }}
|
||||
{{ $subject = $currentNode.Parent.Parent.Parent }} <!-- not top-level, `/course/essentials/day-0/introduction/overview` -->
|
||||
{{ $subject = $currentNode.Parent.Parent.Parent }}
|
||||
<!-- not top-level, `/course/essentials/day-0/introduction/overview` -->
|
||||
{{ end }}
|
||||
|
||||
|
||||
|
||||
{{ if and $subject $subject.Params $subject.Params.content $subject.Params.content.sidebarTitle }}
|
||||
<p class="docs-menu__links-title">
|
||||
{{ $subject.Params.content.sidebarTitle }}
|
||||
</p>
|
||||
<p class="docs-menu__links-title">
|
||||
{{ $subject.Params.content.sidebarTitle }}
|
||||
</p>
|
||||
{{ end }}
|
||||
|
||||
{{ if or (eq $currentNode.Params.isLesson true) (eq $currentNode.Parent.Params.isLesson true) }}
|
||||
{{ $allLessons := where $subject.Pages ".Params.isLesson" true }}
|
||||
{{ $total := len $allLessons }}
|
||||
|
||||
|
||||
{{ if $total }}
|
||||
{{ $currentIndex := 0 }}
|
||||
{{ range $i, $p := $allLessons }}
|
||||
@@ -58,6 +60,7 @@
|
||||
{{ $percent := mul (div (float $currentIndex) (float $total)) 100 }}
|
||||
{{ $percentStr := printf "%.0f" $percent }}
|
||||
|
||||
|
||||
<div class="docs-menu__progress">
|
||||
<div class="docs-menu__progress-container">
|
||||
<div class="docs-menu__progress-bar" style="width: {{ $percentStr }}%;"></div>
|
||||
@@ -72,7 +75,9 @@
|
||||
class="
|
||||
mt-3
|
||||
docs-menu__articles-link
|
||||
docs-menu__links-group-heading{{ if eq $currentNode.RelPermalink $subject.Params.content.menuTitle.url }} active{{ end }}
|
||||
docs-menu__links-group-heading{{ if eq $currentNode.RelPermalink $subject.Params.content.menuTitle.url }}
|
||||
active
|
||||
{{ end }}
|
||||
"
|
||||
>
|
||||
<a href="{{ $subject.Params.content.menuTitle.url }}">
|
||||
@@ -94,7 +99,7 @@
|
||||
{{ end }}
|
||||
|
||||
{{ if $fileExistsAndMatchUniqueID }}
|
||||
{{ $isActive = true }}
|
||||
{{ $isActive = true }}
|
||||
{{ end }}
|
||||
|
||||
{{ $sectionLink := .Permalink }}
|
||||
@@ -103,6 +108,7 @@
|
||||
{{ $sectionLink = (index (.RegularPages) 0).Permalink }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<details
|
||||
class="docs-menu__links-group link-group {{ if $fileExistsAndMatchUniqueID }}active{{ end }}"
|
||||
{{ if $isActive }}open{{ end }}
|
||||
@@ -114,9 +120,7 @@
|
||||
<ul class="docs-menu__links-submenu">
|
||||
{{ range .Pages }}
|
||||
{{ $fileExistsAndMatchUniqueIDSub := and .File $currentNode.File (eq .File.UniqueID $currentNode.File.UniqueID) }}
|
||||
<div
|
||||
class="docs-menu__links-group {{ if $fileExistsAndMatchUniqueIDSub }}active{{ end }}"
|
||||
>
|
||||
<div class="docs-menu__links-group {{ if $fileExistsAndMatchUniqueIDSub }}active{{ end }}">
|
||||
<div class="docs-menu__links-group-heading">
|
||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||
</div>
|
||||
@@ -127,9 +131,7 @@
|
||||
</details>
|
||||
{{ else }}
|
||||
{{ $fileExistsAndMatchUniqueID := and .File $currentNode.File (eq .File.UniqueID $currentNode.File.UniqueID) }}
|
||||
<div
|
||||
class="docs-menu__links-group {{ if $fileExistsAndMatchUniqueID }}active{{ end }}"
|
||||
>
|
||||
<div class="docs-menu__links-group {{ if $fileExistsAndMatchUniqueID }}active{{ end }}">
|
||||
<div class="docs-menu__links-group-heading">
|
||||
<a href="{{ .Params.url }}">{{ .Title }}</a>
|
||||
</div>
|
||||
|
||||
+10
-2
@@ -3,10 +3,18 @@
|
||||
<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">
|
||||
<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">
|
||||
<a
|
||||
href="{{ .localButton.url }}"
|
||||
{{ if strings.HasPrefix .localButton.url "https://" }}target="_blank"{{ end }}
|
||||
class="button button_outlined button_sm"
|
||||
>
|
||||
{{ .localButton.text }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
+5
-1
@@ -1,7 +1,11 @@
|
||||
<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">
|
||||
<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>
|
||||
|
||||
+5
-1
@@ -1,7 +1,11 @@
|
||||
<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">
|
||||
<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>
|
||||
|
||||
+6
-1
@@ -6,7 +6,12 @@
|
||||
<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">
|
||||
<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>
|
||||
|
||||
+8
-8
@@ -30,15 +30,15 @@
|
||||
|
||||
<!-- Optional list, separated by a delimiter. Only rendered if the card has a list. -->
|
||||
{{ if .card.list }}
|
||||
<div class="divider mt-2"></div>
|
||||
{{ if .card.list.title }}
|
||||
<p class="docs-card__description docs-card__list-title">{{ .card.list.title }}</p>
|
||||
<div class="divider mt-2"></div>
|
||||
{{ if .card.list.title }}
|
||||
<p class="docs-card__description docs-card__list-title">{{ .card.list.title }}</p>
|
||||
{{ end }}
|
||||
<ul class="docs-card__description docs-card__list-element mb-2">
|
||||
{{ range .card.list.elements }}
|
||||
<li>{{ . }}</li>
|
||||
{{ end }}
|
||||
<ul class="docs-card__description docs-card__list-element mb-2">
|
||||
{{ range .card.list.elements }}
|
||||
<li>{{ . }}</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</ul>
|
||||
{{ end }}
|
||||
|
||||
{{ if .card.link.text }}
|
||||
|
||||
+18
-6
@@ -10,7 +10,6 @@
|
||||
<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 eq .Section "articles" }}
|
||||
{{ $subject := site.GetPage "articles" }}
|
||||
{{ $currentNode := .Params }}
|
||||
@@ -32,6 +31,7 @@
|
||||
|
||||
{{ $category := .Params.category }}
|
||||
|
||||
|
||||
<div class="docs-articles__posts">
|
||||
<div class="row gy-4">
|
||||
{{ $list := first 0 site.Pages }}
|
||||
@@ -68,11 +68,13 @@
|
||||
<div class="docs-articles docs-articles__list">
|
||||
{{ partial "documentation/breadcrumbs" . }}
|
||||
|
||||
|
||||
<h4 class="docs-articles__title">{{ .Params.title }}</h4>
|
||||
<p class="docs-articles__description">{{ .Params.description }}</p>
|
||||
|
||||
{{ $category := .Params.category }}
|
||||
|
||||
|
||||
<div class="docs-articles__posts">
|
||||
<div class="row gx-4 gy-5">
|
||||
{{ $list := first 0 site.Pages }}
|
||||
@@ -115,17 +117,26 @@
|
||||
<div class="documentation__article-wrapper">
|
||||
{{ partial "documentation/breadcrumbs" . }}
|
||||
|
||||
|
||||
<article class="documentation-article">
|
||||
<div class="documentation-article__header">
|
||||
{{ $firstUrlElement := index (split .RelPermalink "/") 1 }}
|
||||
{{ $url := path.Join $firstUrlElement .Params.category }}
|
||||
|
||||
|
||||
<a href="/{{ $url }}/" class="documentation-article__header-link">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.6668 8.00004H1.3335M1.3335 8.00004L6.00016 12.6667M1.3335 8.00004L6.00016 3.33337" stroke="#8F98B3" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path
|
||||
d="M14.6668 8.00004H1.3335M1.3335 8.00004L6.00016 12.6667M1.3335 8.00004L6.00016 3.33337"
|
||||
stroke="#8F98B3"
|
||||
stroke-width="1.33333"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
/>
|
||||
</svg>
|
||||
{{ with (.Site.GetPage $url) }}
|
||||
Back to {{ .Params.Title }}
|
||||
Back to
|
||||
{{ .Params.Title }}
|
||||
{{ end }}
|
||||
</a>
|
||||
<h1 class="documentation-article__header-title">{{ .Params.title }}</h1>
|
||||
@@ -140,9 +151,9 @@
|
||||
<img alt="{{ .Title }}" src="{{ .Params.preview_dir }}/title.jpg" />
|
||||
</picture>
|
||||
{{ else }}
|
||||
<picture class="documentation-article__preview">
|
||||
{{ partial "preview-image" (dict "context" . "default_file_name" "title.jpg" "preview_file" .Params.title_preview_image) }}
|
||||
</picture>
|
||||
<picture class="documentation-article__preview">
|
||||
{{ partial "preview-image" (dict "context" . "default_file_name" "title.jpg" "preview_file" .Params.title_preview_image) }}
|
||||
</picture>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
@@ -168,6 +179,7 @@
|
||||
{{ partial "documentation/breadcrumbs" . }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<article class="documentation-article">
|
||||
{{ partial "article-content.html" . }}
|
||||
</article>
|
||||
|
||||
@@ -2,11 +2,19 @@
|
||||
<section class="docs-feedback d-print-none">
|
||||
<h5 class="docs-feedback__title">{{ .Params.title }}</h5>
|
||||
<div class="docs-feedback__buttons">
|
||||
<button class="button button_outlined button_sm docs-feedback__button" id="feedback__answer_yes" data-metric-loc="useful_prompt_yes">
|
||||
<button
|
||||
class="button button_outlined button_sm docs-feedback__button"
|
||||
id="feedback__answer_yes"
|
||||
data-metric-loc="useful_prompt_yes"
|
||||
>
|
||||
<img src="{{ .Params.positiveButton.icon.src }}" alt="{{ .Params.positiveButton.icon.alt }}" />
|
||||
{{ .Params.positiveButton.text }}
|
||||
</button>
|
||||
<button class="button button_outlined button_sm docs-feedback__button" id="feedback__answer_no" data-metric-loc="useful_prompt_no">
|
||||
<button
|
||||
class="button button_outlined button_sm docs-feedback__button"
|
||||
id="feedback__answer_no"
|
||||
data-metric-loc="useful_prompt_no"
|
||||
>
|
||||
<img src="{{ .Params.negativeButton.icon.src }}" alt="{{ .Params.negativeButton.icon.alt }}" />
|
||||
{{ .Params.negativeButton.text }}
|
||||
</button>
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
{{ with (.Site.GetPage "/headless/footer") }}
|
||||
<footer class="docs-footer w-100 py-0 pt-0 pb-4 pb-xl-0">
|
||||
|
||||
{{ if not (eq $currentPage.Section "course") }}
|
||||
<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__cta">
|
||||
<h4>{{ .Params.question }}</h4>
|
||||
<a href="{{ .Params.questionButton.url }}" class="button button_outlined button_sm" target="_blank">
|
||||
{{ .Params.questionButton.text }}
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
|
||||
<div class="docs-footer__bottom">
|
||||
<div class="docs-footer__bottom-content">
|
||||
<span>{{ .Params.copyright }}</span>
|
||||
|
||||
@@ -1,97 +1,59 @@
|
||||
<header class="docs-header">
|
||||
{{ $partition := partial "get-partition.html" (dict "page" .) }}
|
||||
<div class="main-menu z-5">
|
||||
{{ with (.Site.GetPage "/headless/docs-header") }}
|
||||
<a href="{{ .Params.logoLink }}">
|
||||
{{ partial "logo.html" . }}
|
||||
</a>
|
||||
<div class="main-menu z-5">
|
||||
{{ with (.Site.GetPage "/headless/docs-header") }}
|
||||
<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 4) }}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>
|
||||
<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" . }}
|
||||
<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>
|
||||
{{end}}
|
||||
</div>
|
||||
<button type="button" class="main-menu__trigger">{{ partial "svg" "hamburger-menu-white.svg" }}</button>
|
||||
</div>
|
||||
|
||||
<div class="menu-mobile">
|
||||
{{ with (.Site.GetPage "/headless/docs-header") }}
|
||||
<div class="menu-mobile__header">
|
||||
{{ partial "logo.html" . }}
|
||||
<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="menu-mobile__close">{{ partial "svg" "close-white.svg" }}</button>
|
||||
</div>
|
||||
</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 4) }}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"
|
||||
@@ -102,25 +64,63 @@
|
||||
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>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<ul class="menu-mobile__items">
|
||||
{{ range $index, $element := .Params.menuItems }}
|
||||
<li class="menu-mobile__item" data-path="{{ .id }}">
|
||||
<div class="menu-mobile__item-content">
|
||||
<a
|
||||
class="{{ if eq (lower .name) $partition }} active{{ end }}"
|
||||
href="{{ .url }}"
|
||||
{{ if (eq $index 4) }}target="_blank"{{ end }}
|
||||
>
|
||||
{{ partial "svg" .icon }}
|
||||
{{ .name }}
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
<div class="menu-mobile">
|
||||
{{ with (.Site.GetPage "/headless/docs-header") }}
|
||||
<div class="menu-mobile__header">
|
||||
{{ partial "logo.html" . }}
|
||||
<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="menu-mobile__close">{{ partial "svg" "close-white.svg" }}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ partial "documentation/sidebar-menu" (dict "context" . "partition" $partition) }}
|
||||
</div>
|
||||
<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>
|
||||
|
||||
<ul class="menu-mobile__items">
|
||||
{{ range $index, $element := .Params.menuItems }}
|
||||
<li class="menu-mobile__item" data-path="{{ .id }}">
|
||||
<div class="menu-mobile__item-content">
|
||||
<a
|
||||
class="{{ if eq (lower .name) $partition }}active{{ end }}"
|
||||
href="{{ .url }}"
|
||||
{{ if (eq $index 4) }}target="_blank"{{ end }}
|
||||
>
|
||||
{{ partial "svg" .icon }}
|
||||
{{ .name }}
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
|
||||
{{ partial "documentation/sidebar-menu" (dict "context" . "partition" $partition) }}
|
||||
</div>
|
||||
</header>
|
||||
|
||||
+14
-13
@@ -3,8 +3,6 @@
|
||||
{{ $currentNode := .context }}
|
||||
<div class="docs-menu">
|
||||
<div id="sidebar" class="docs-menu__content">
|
||||
|
||||
|
||||
{{ if eq $currentNode.Section "articles" }}
|
||||
<h3 class="docs-menu__links-title">Articles</h3>
|
||||
<nav>
|
||||
@@ -15,7 +13,7 @@
|
||||
{{ if .Params.isCategoryPage }}
|
||||
<div
|
||||
class="docs-menu__articles-link docs-menu__links-group-heading
|
||||
{{ if eq .File.UniqueID $currentNode.File.UniqueID }} active{{ end }}"
|
||||
{{ if eq .File.UniqueID $currentNode.File.UniqueID }}active{{ end }}"
|
||||
>
|
||||
<a href="{{ .Params.url }}">{{ .Params.title }}</a>
|
||||
</div>
|
||||
@@ -30,18 +28,24 @@
|
||||
|
||||
{{ $subject := $currentNode }}
|
||||
|
||||
{{ if eq $numLevels 1 }}
|
||||
{{ $subject = $currentNode }} <!-- top-level, `/documentation` -->
|
||||
{{ if eq $numLevels 1 }}
|
||||
{{ $subject = $currentNode }}
|
||||
<!-- top-level, `/documentation` -->
|
||||
{{ else if eq $numLevels 2 }}
|
||||
{{ $subject = $currentNode.Parent }} <!-- not top-level, `/documentation/essentials` -->
|
||||
{{ $subject = $currentNode.Parent }}
|
||||
<!-- not top-level, `/documentation/essentials` -->
|
||||
{{ else if eq $numLevels 3 }}
|
||||
{{ $subject = $currentNode.Parent.Parent }} <!-- not top-level, `/documentation/essentials/day-0` -->
|
||||
{{ $subject = $currentNode.Parent.Parent }}
|
||||
<!-- not top-level, `/documentation/essentials/day-0` -->
|
||||
{{ else if eq $numLevels 4 }}
|
||||
{{ $subject = $currentNode.Parent.Parent.Parent }} <!-- not top-level, `/documentation/essentials/day-0/introduction` -->
|
||||
{{ $subject = $currentNode.Parent.Parent.Parent }}
|
||||
<!-- not top-level, `/documentation/essentials/day-0/introduction` -->
|
||||
{{ else }}
|
||||
{{ $subject = $currentNode.Parent.Parent.Parent }} <!-- not top-level, `/documentation/essentials/day-0/introduction/overview` -->
|
||||
{{ $subject = $currentNode.Parent.Parent.Parent }}
|
||||
<!-- not top-level, `/documentation/essentials/day-0/introduction/overview` -->
|
||||
{{ end }}
|
||||
|
||||
|
||||
<nav class="docs-menu__links">
|
||||
{{ range $subject.Pages }}
|
||||
{{ if and (eq .Params.partition $partition) (not .Params.hideInSidebar) }}
|
||||
@@ -50,6 +54,7 @@
|
||||
{{ else if eq .Params.type "reference" }}
|
||||
{{ $page := site.GetPage .Params.reference }}
|
||||
|
||||
|
||||
<div
|
||||
class="docs-menu__links-group {{ if eq $page.File.UniqueID $currentNode.File.UniqueID }}active{{ end }}
|
||||
{{- if (eq $page.Params.type "external-link") }}external-link{{ end -}} "
|
||||
@@ -67,10 +72,7 @@
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{{ else }}
|
||||
|
||||
{{ if and (.IsPage) (not .Params.hideInSidebar) }}
|
||||
<div
|
||||
class="docs-menu__links-group {{ if eq .File.UniqueID $currentNode.File.UniqueID }}active{{ end }}
|
||||
@@ -152,6 +154,5 @@
|
||||
</nav>
|
||||
{{ end }}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,14 +5,19 @@
|
||||
<div class="row align-items-lg-center g-5 g-lg-0">
|
||||
<div class="col-12 col-lg-6 z-1">
|
||||
<h2 class="edge-demo__title">
|
||||
{{ .Params.label.title }}: {{ .Params.title }}
|
||||
{{ .Params.label.title }}:
|
||||
{{ .Params.title }}
|
||||
</h2>
|
||||
<p class="edge-demo__description">{{ .Params.description }}</p>
|
||||
{{ with .Params.description2 }}
|
||||
<p class="edge-demo__description edge-demo__description--secondary">{{ . }}</p>
|
||||
{{ end }}
|
||||
<div class="edge-demo__buttons">
|
||||
<a href="{{ .Params.cta.url }}" class="button button_contained button_lg edge-demo__button" target="{{ .Params.cta.target }}">
|
||||
<a
|
||||
href="{{ .Params.cta.url }}"
|
||||
class="button button_contained button_lg edge-demo__button"
|
||||
target="{{ .Params.cta.target }}"
|
||||
>
|
||||
{{ .Params.cta.text }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
<h2 class="edge-features__title">{{ .Params.title }}</h2>
|
||||
<div class="edge-features__cards row g-4">
|
||||
{{ range $index, $element := .Params.features }}
|
||||
<div class="col-12 {{ if eq $index 0 }}col-lg-8{{ else }}col-lg-4 {{ end }}">
|
||||
<div class="card edge-features__card">
|
||||
<h6 class="edge-features__card-title">{{ .title }}</h6>
|
||||
<p class="edge-features__card-description">{{ .description }}</p>
|
||||
<img class="edge-features__card-image" src="{{ .image.src }}" alt="{{ .image.alt }}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 {{ if eq $index 0 }}col-lg-8{{ else }}col-lg-4{{ end }}">
|
||||
<div class="card edge-features__card">
|
||||
<h6 class="edge-features__card-title">{{ .title }}</h6>
|
||||
<p class="edge-features__card-description">{{ .description }}</p>
|
||||
<img class="edge-features__card-image" src="{{ .image.src }}" alt="{{ .image.alt }}" />
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -37,7 +37,12 @@
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="hs-form-html" data-region="eu1" data-form-id="3adfb3a8-1c4b-4670-958f-325826039f7e" data-portal-id="139603372"></div>
|
||||
<div
|
||||
class="hs-form-html"
|
||||
data-region="eu1"
|
||||
data-form-id="3adfb3a8-1c4b-4670-958f-325826039f7e"
|
||||
data-portal-id="139603372"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
<h2 class="edge-vectors__title">{{ .Params.title }}</h2>
|
||||
<div class="edge-vectors__cards row g-4 g-lg-0">
|
||||
{{ range $index, $element := .Params.cards }}
|
||||
<div class="edge-vectors__card col-12 col-lg-6">
|
||||
<div class="edge-vectors__card-info">
|
||||
<img class="edge-vectors__card-icon" src="{{ .icon.src }}" alt="{{ .icon.alt }}" />
|
||||
<h5 class="edge-vectors__card-title">{{ .title }}</h5>
|
||||
<p class="edge-vectors__card-description">{{ .description }}</p>
|
||||
<div class="edge-vectors__card col-12 col-lg-6">
|
||||
<div class="edge-vectors__card-info">
|
||||
<img class="edge-vectors__card-icon" src="{{ .icon.src }}" alt="{{ .icon.alt }}" />
|
||||
<h5 class="edge-vectors__card-title">{{ .title }}</h5>
|
||||
<p class="edge-vectors__card-description">{{ .description }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
<div class="elastic-lucene-cta__description">
|
||||
{{ .Params.content | safeHTML }}
|
||||
</div>
|
||||
<a href="{{ .Params.button.link }}" class="elastic-lucene-cta__button button button_contained button_lg">{{ .Params.button.text }}</a>
|
||||
<a href="{{ .Params.button.link }}" class="elastic-lucene-cta__button button button_contained button_lg"
|
||||
>{{ .Params.button.text }}</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,29 +6,35 @@
|
||||
<h1 class="elastic-lucene-hero__title">{{ .Params.title | safeHTML }}</h1>
|
||||
<p class="elastic-lucene-hero__description">{{ .Params.description }}</p>
|
||||
{{ if and .Params.startFree .Params.learnMore }}
|
||||
<div class="elastic-lucene-hero__buttons">
|
||||
<a href="{{ .Params.startFree.url }}" class="button button_contained button_lg">{{ .Params.startFree.text }}</a>
|
||||
<a href="{{ .Params.learnMore.url }}" class="button button_outlined button_lg elastic-lucene-hero__button-outlined">{{ .Params.learnMore.text }}</a>
|
||||
</div>
|
||||
<div class="elastic-lucene-hero__buttons">
|
||||
<a href="{{ .Params.startFree.url }}" class="button button_contained button_lg"
|
||||
>{{ .Params.startFree.text }}</a
|
||||
>
|
||||
<a
|
||||
href="{{ .Params.learnMore.url }}"
|
||||
class="button button_outlined button_lg elastic-lucene-hero__button-outlined"
|
||||
>{{ .Params.learnMore.text }}</a
|
||||
>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if .Params.quotes }}
|
||||
<div class="elastic-lucene-hero__quotes">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="1"
|
||||
height="85"
|
||||
viewBox="0 0 1 85"
|
||||
fill="none"
|
||||
class="elastic-lucene-hero__quotes-line"
|
||||
>
|
||||
<path d="M0.5 0.5V84.5" stroke="#8F98B3" stroke-linecap="round" />
|
||||
</svg>
|
||||
<div class="elastic-lucene-hero__quotes-list">
|
||||
{{ range .Params.quotes }}
|
||||
<p>{{ . }}</p>
|
||||
{{ end }}
|
||||
<div class="elastic-lucene-hero__quotes">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="1"
|
||||
height="85"
|
||||
viewBox="0 0 1 85"
|
||||
fill="none"
|
||||
class="elastic-lucene-hero__quotes-line"
|
||||
>
|
||||
<path d="M0.5 0.5V84.5" stroke="#8F98B3" stroke-linecap="round" />
|
||||
</svg>
|
||||
<div class="elastic-lucene-hero__quotes-list">
|
||||
{{ range .Params.quotes }}
|
||||
<p>{{ . }}</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if .Params.closingText }}
|
||||
<p class="elastic-lucene-hero__closing">{{ .Params.closingText }}</p>
|
||||
|
||||
+9
-9
@@ -4,16 +4,16 @@
|
||||
<h2 class="enterprise-solutions-capabilities__title">{{ .Params.title }}</h2>
|
||||
<div class="enterprise-solutions-capabilities__cards">
|
||||
{{ range .Params.cards }}
|
||||
<div class="enterprise-solutions-capabilities__card">
|
||||
<div class="enterprise-solutions-capabilities__card-info">
|
||||
<h6 class="enterprise-solutions-capabilities__card-title">{{ .title }}</h6>
|
||||
<p class="enterprise-solutions-capabilities__card-content">{{ .content | safeHTML }}</p>
|
||||
<a class="enterprise-solutions-capabilities__card-link link link_md" href="{{ .link.url }}">
|
||||
{{ .link.text }}
|
||||
</a>
|
||||
<div class="enterprise-solutions-capabilities__card">
|
||||
<div class="enterprise-solutions-capabilities__card-info">
|
||||
<h6 class="enterprise-solutions-capabilities__card-title">{{ .title }}</h6>
|
||||
<p class="enterprise-solutions-capabilities__card-content">{{ .content | safeHTML }}</p>
|
||||
<a class="enterprise-solutions-capabilities__card-link link link_md" href="{{ .link.url }}">
|
||||
{{ .link.text }}
|
||||
</a>
|
||||
</div>
|
||||
<img class="enterprise-solutions-capabilities__card-image" src="{{ .image.src }}" alt="{{ .image.alt }}" />
|
||||
</div>
|
||||
<img class="enterprise-solutions-capabilities__card-image" src="{{ .image.src }}" alt="{{ .image.alt }}" />
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+2
-6
@@ -5,15 +5,11 @@
|
||||
<div class="enterprise-solutions-use-cases__cases row g-4">
|
||||
{{ range $index, $element := .Params.items }}
|
||||
<div class="{{ if eq $index 0 }}col-12{{ else }}col-12 col-lg-6{{ end }}">
|
||||
<a
|
||||
href="{{ .link.url }}"
|
||||
class="card enterprise-solutions-use-cases__case">
|
||||
<a href="{{ .link.url }}" class="card enterprise-solutions-use-cases__case">
|
||||
<div class="enterprise-solutions-use-cases__case-text">
|
||||
<h3 class="enterprise-solutions-use-cases__case-title">{{ .title }}</h3>
|
||||
<p class="enterprise-solutions-use-cases__case-description">{{ .description }}</p>
|
||||
<span
|
||||
class="enterprise-solutions-use-cases__case-link link link_md align-self-start"
|
||||
>
|
||||
<span class="enterprise-solutions-use-cases__case-link link link_md align-self-start">
|
||||
{{ .link.text }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -10,7 +10,11 @@
|
||||
<a
|
||||
href="{{ .context.Params.button.url }}"
|
||||
class="button button_contained"
|
||||
target="{{ if eq .context.Params.button.target "self" }}_self{{ else }}_blank{{ end }}"
|
||||
target="{{ if eq .context.Params.button.target "self" }}
|
||||
_self
|
||||
{{ else }}
|
||||
_blank
|
||||
{{ end }}"
|
||||
>
|
||||
{{ .context.Params.button.text }}
|
||||
</a>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
{{ $partition := partial "get-partition.html" (dict "page" .) }}
|
||||
{{ if $partition }}
|
||||
<meta name="partition" content="{{ $partition | safeHTML }}">
|
||||
<meta name="partition" content="{{ $partition | safeHTML }}" />
|
||||
{{ end }}
|
||||
|
||||
{{ partial "css" . }}
|
||||
|
||||
@@ -17,7 +17,10 @@
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ with .Params.newsletter }}
|
||||
<a href="{{ .url }}" class="button button_outlined button_lg healthcare-hero__button healthcare-hero__button--secondary">
|
||||
<a
|
||||
href="{{ .url }}"
|
||||
class="button button_outlined button_lg healthcare-hero__button healthcare-hero__button--secondary"
|
||||
>
|
||||
{{ .text }}
|
||||
</a>
|
||||
{{ end }}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user