Subscribe to our newsletter.
(It’s better than you think)
No spam. No sales pitches. Just product updates. Keep up with all our articles and news. Join our newsletter and stay up to date!
diff --git a/pgml-dashboard/src/components/icons/checkmark/checkmark.scss b/pgml-dashboard/src/components/icons/checkmark/checkmark.scss
index 98e0247a2..23396131a 100644
--- a/pgml-dashboard/src/components/icons/checkmark/checkmark.scss
+++ b/pgml-dashboard/src/components/icons/checkmark/checkmark.scss
@@ -1,5 +1,5 @@
div[data-controller="icons-checkmark"] {
- .active {
+ .blue {
.first {
stop-color: #3EDCFF;
}
@@ -8,7 +8,25 @@ div[data-controller="icons-checkmark"] {
}
}
- .inactive {
+ .green {
+ .first {
+ stop-color: #44FFDD;
+ }
+ .second {
+ stop-color: #05C168;
+ }
+ }
+
+ .orange {
+ .first {
+ stop-color: #FFB444;
+ }
+ .second {
+ stop-color: #FF6644;
+ }
+ }
+
+ .white {
.first {
stop-color: #{$gray-100};
}
@@ -17,6 +35,15 @@ div[data-controller="icons-checkmark"] {
}
}
+ .purple {
+ .first {
+ stop-color: #5337FF;
+ }
+ .second {
+ stop-color: #A175FF;
+ }
+ }
+
.disabled {
.first {
stop-color: #{$gray-500};
diff --git a/pgml-dashboard/src/components/icons/checkmark/mod.rs b/pgml-dashboard/src/components/icons/checkmark/mod.rs
index e0e119b27..f55087087 100644
--- a/pgml-dashboard/src/components/icons/checkmark/mod.rs
+++ b/pgml-dashboard/src/components/icons/checkmark/mod.rs
@@ -4,30 +4,27 @@ use sailfish::TemplateOnce;
#[derive(TemplateOnce, Default)]
#[template(path = "icons/checkmark/template.html")]
pub struct Checkmark {
- state: String,
+ color: String,
twitter: bool,
+ disabled: bool,
}
impl Checkmark {
pub fn new() -> Checkmark {
Checkmark {
- state: String::from("inactive"),
+ color: String::from("blue"),
twitter: false,
+ disabled: false,
}
}
- pub fn active(mut self) -> Self {
- self.state = String::from("active");
- self
- }
-
- pub fn inactive(mut self) -> Self {
- self.state = String::from("inactive");
+ pub fn color(mut self, color: &str) -> Self {
+ self.color = String::from(color);
self
}
pub fn disabled(mut self) -> Self {
- self.state = String::from("disabled");
+ self.disabled = true;
self
}
diff --git a/pgml-dashboard/src/components/icons/checkmark/template.html b/pgml-dashboard/src/components/icons/checkmark/template.html
index e5b6f4d97..0e83cdd22 100644
--- a/pgml-dashboard/src/components/icons/checkmark/template.html
+++ b/pgml-dashboard/src/components/icons/checkmark/template.html
@@ -2,6 +2,12 @@
use rand::Rng;
let mut rng = rand::thread_rng();
let id = rng.gen::
();
+
+ let color_class = if disabled {
+ "disabled"
+ } else {
+ &color
+ };
%>
<% if twitter {%>
@@ -10,7 +16,7 @@
<% } else {%>
-
+
diff --git a/pgml-dashboard/src/components/star/star.scss b/pgml-dashboard/src/components/star/star.scss
index 03f11bbc4..f35845324 100644
--- a/pgml-dashboard/src/components/star/star.scss
+++ b/pgml-dashboard/src/components/star/star.scss
@@ -5,7 +5,7 @@ div[data-controller="star"] {
left: 0;
transform: translate(-50%, -50%);
- #star-wrapper {
+ .star-wrapper {
position: relative;
width: 120px;
height: 120px;
@@ -22,7 +22,7 @@ div[data-controller="star"] {
animation:spin 35s linear infinite;
}
- #star-content {
+ .star-content {
position: absolute;
top: 0;
left: 0;
diff --git a/pgml-dashboard/src/components/star/template.html b/pgml-dashboard/src/components/star/template.html
index 18850bbc2..d6c69c51e 100644
--- a/pgml-dashboard/src/components/star/template.html
+++ b/pgml-dashboard/src/components/star/template.html
@@ -1,6 +1,6 @@
-
+
<%- svg %>
-
<%- content %>
+
<%- content %>
diff --git a/pgml-dashboard/static/css/modules.scss b/pgml-dashboard/static/css/modules.scss
index 0ac9e1dab..126972b89 100644
--- a/pgml-dashboard/static/css/modules.scss
+++ b/pgml-dashboard/static/css/modules.scss
@@ -23,7 +23,9 @@
@import "../../src/components/inputs/checkbox/checkbox.scss";
@import "../../src/components/inputs/labels/with_tooltip/with_tooltip.scss";
@import "../../src/components/inputs/radio/radio.scss";
+@import "../../src/components/inputs/range/range.scss";
@import "../../src/components/inputs/range_group/range_group.scss";
+@import "../../src/components/inputs/range_group_pricing_calc/range_group_pricing_calc.scss";
@import "../../src/components/inputs/range_group_v_2/range_group_v_2.scss";
@import "../../src/components/inputs/select/select.scss";
@import "../../src/components/inputs/switch/switch.scss";
diff --git a/pgml-dashboard/static/css/scss/abstracts/variables.scss b/pgml-dashboard/static/css/scss/abstracts/variables.scss
index d4a6b8cdb..05151f3b0 100644
--- a/pgml-dashboard/static/css/scss/abstracts/variables.scss
+++ b/pgml-dashboard/static/css/scss/abstracts/variables.scss
@@ -1,5 +1,5 @@
//
-// Default SASS Variable Overrides
+// Default SASS Variable Overrides and Custom Variables
//
// Neutral Scale
@@ -14,7 +14,27 @@ $gray-800: #17181A;
$gray-900: #000000;
// Violet Scale
+$violet-tint-100: #A105FF;
+$violet-tint-200: #Aa1dff;
+$violet-tint-300: #b336ff;
+$violet-tint-400: #bd50ff;
+$violet-tint-500: #c669ff;
+$violet-tint-600: #d082ff;
+$violet-tint-700: #d99bff;
+$violet-tint-800: #e2b4ff;
+$violet-tint-900: #eccdff;
+$violet-tint-1000: #f5e6ff;
+
$violet-shade-100: #A105FF;
+$violet-shade-200: #9004e5;
+$violet-shade-300: #8004cc;
+$violet-shade-400: #7003b2;
+$violet-shade-500: #600399;
+$violet-shade-600: #50027f;
+$violet-shade-700: #400266;
+$violet-shade-800: #30014c;
+$violet-shade-900: #200133;
+$violet-shade-1000: #100019;
// Neon Scale
$neon-tint-100: #5162FF;
@@ -97,6 +117,7 @@ $slate-shade-800: #2B274C;
$slate-shade-900: #1D1A33;
$slate-shade-1000: #0E0D19;
+// Magenta Scale
$magenta-shade-100: #E6008A;
$magenta-shade-200: #cf007c;
$magenta-shade-300: #b8006e;
diff --git a/pgml-dashboard/static/css/scss/components/_buttons.scss b/pgml-dashboard/static/css/scss/components/_buttons.scss
index 9a4d39b55..31341305f 100644
--- a/pgml-dashboard/static/css/scss/components/_buttons.scss
+++ b/pgml-dashboard/static/css/scss/components/_buttons.scss
@@ -105,7 +105,7 @@
}
}
-.btn-primary-web-app {
+.btn-primary-web-app, .btn-primary-marketing {
--bs-btn-padding-x: 30px;
--bs-btn-padding-y: 20px;
@@ -143,6 +143,11 @@
}
}
+.btn-primary-marketing {
+ --bs-btn-padding-x: 24px;
+ --bs-btn-padding-y: 16px;
+}
+
.btn-secondary-web-app {
--bs-btn-padding-x: 30px;
--bs-btn-padding-y: 20px;
diff --git a/pgml-dashboard/static/css/scss/layout/_containers.scss b/pgml-dashboard/static/css/scss/layout/_containers.scss
index 8515efbfe..660de0bde 100644
--- a/pgml-dashboard/static/css/scss/layout/_containers.scss
+++ b/pgml-dashboard/static/css/scss/layout/_containers.scss
@@ -169,6 +169,17 @@
}
}
+.psychedelic-pink-bg {
+ background-position: center;
+ background-size: cover;
+ background-repeat: no-repeat;
+ @include media-breakpoint-up(md) {
+ background-image: url("/dashboard/static/images/newsletter_subscribe_background_desktop.png");
+ }
+ background-image: url("/dashboard/static/images/newsletter_subscribe_background_mobile.png");
+ background-color: #{$pink};
+}
+
#ai-dev-summit-tip-container {
.admonition-title {
display: none
diff --git a/pgml-dashboard/static/images/pricing_lp_hero_image.webp b/pgml-dashboard/static/images/pricing_lp_hero_image.webp
new file mode 100644
index 000000000..8934ffb9b
Binary files /dev/null and b/pgml-dashboard/static/images/pricing_lp_hero_image.webp differ
diff --git a/pgml-dashboard/static/images/pricing_lp_hero_image_desktop.webp b/pgml-dashboard/static/images/pricing_lp_hero_image_desktop.webp
new file mode 100644
index 000000000..d970b65b5
Binary files /dev/null and b/pgml-dashboard/static/images/pricing_lp_hero_image_desktop.webp differ
diff --git a/pgml-dashboard/templates/content/playground.html b/pgml-dashboard/templates/content/playground.html
index 144d4130b..df3527244 100644
--- a/pgml-dashboard/templates/content/playground.html
+++ b/pgml-dashboard/templates/content/playground.html
@@ -12,6 +12,7 @@
use crate::components::icons::Checkmark;
use crate::components::Slider;
use crate::components::pagination::Pagination;
+use crate::components::inputs::{range::Range, RangeGroupPricingCalc};
%>
@@ -37,12 +38,36 @@
icons
<%+ GithubIcon::new() %>
-
-
- <%+ Checkmark::new().active() %>
+
+
+
Checkmarks
+
+
normal
+ in disabled container
+ disabled attribute
+
+
+ <%+ Checkmark::new().color("white") %>
+ <%+ Checkmark::new().color("blue") %>
+ <%+ Checkmark::new().color("green") %>
+ <%+ Checkmark::new().color("orange") %>
+ <%+ Checkmark::new().color("purple") %>
+
+
+ <%+ Checkmark::new().color("white") %>
+ <%+ Checkmark::new().color("blue") %>
+ <%+ Checkmark::new().color("green") %>
+ <%+ Checkmark::new().color("orange") %>
+ <%+ Checkmark::new().color("purple") %>
- <%+ Checkmark::new().disabled() %>
- <%+ Checkmark::new().inactive() %>
+
+ <%+ Checkmark::new().color("white").disabled() %>
+ <%+ Checkmark::new().color("blue").disabled() %>
+ <%+ Checkmark::new().color("green").disabled() %>
+ <%+ Checkmark::new().color("orange").disabled() %>
+ <%+ Checkmark::new().color("purple").disabled() %>
+
+
Twitter
<%+ Checkmark::new().twitter() %>
@@ -258,6 +283,10 @@
Inputs
+ <%+ Range::new() %>
+
+ <%+ RangeGroupPricingCalc::new() %>
+