@ably/ui 11.7.1-dev.d65c98c → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/core/ContactFooter.jsx +8 -8
  2. package/core/DropdownMenu.jsx +1 -1
  3. package/core/FeaturedLink/component.js +1 -1
  4. package/core/FeaturedLink.jsx +8 -4
  5. package/core/Flash/component.css +0 -4
  6. package/core/Flash.jsx +1 -1
  7. package/core/Footer.jsx +2 -2
  8. package/core/Meganav/component.css +1 -1
  9. package/core/Meganav.jsx +12 -8
  10. package/core/MeganavBlogPostsList.jsx +8 -4
  11. package/core/MeganavContentCompany.jsx +8 -4
  12. package/core/MeganavContentProducts.jsx +9 -5
  13. package/core/MeganavItemsMobile.jsx +8 -4
  14. package/core/MeganavItemsSignedIn.jsx +8 -4
  15. package/core/MeganavSearch.jsx +8 -4
  16. package/core/MeganavSearchPanel.jsx +8 -4
  17. package/core/MeganavSearchSuggestions.jsx +8 -4
  18. package/core/Notice/component.js +1 -1
  19. package/core/Notice.jsx +3 -3
  20. package/core/Uptime/component.css +1 -1
  21. package/core/Uptime.jsx +9 -5
  22. package/core/styles.css +20 -37
  23. package/package.json +1 -1
  24. package/src/core/ContactFooter/component.html.erb +8 -8
  25. package/src/core/ContactFooter/component.jsx +8 -8
  26. package/src/core/DropdownMenu/component.jsx +1 -1
  27. package/src/core/FeatureFooter/component.html.erb +6 -6
  28. package/src/core/FeaturedLink/component.html.erb +3 -3
  29. package/src/core/FeaturedLink/component.js +0 -1
  30. package/src/core/FeaturedLink/component.jsx +27 -10
  31. package/src/core/Flash/component.css +0 -4
  32. package/src/core/Flash/component.jsx +1 -1
  33. package/src/core/Footer/component.html.erb +2 -2
  34. package/src/core/Footer/component.jsx +2 -2
  35. package/src/core/Meganav/component.css +1 -1
  36. package/src/core/MeganavContentProducts/component.html.erb +1 -1
  37. package/src/core/MeganavContentProducts/component.jsx +1 -1
  38. package/src/core/Notice/component.html.erb +2 -2
  39. package/src/core/Notice/component.jsx +2 -2
  40. package/src/core/Showcase/component.html.erb +7 -7
  41. package/src/core/Uptime/component.css +1 -1
  42. package/src/core/Uptime/component.jsx +1 -4
  43. package/src/core/styles/text.css +19 -36
  44. package/src/core/styles.components.css +1 -1
  45. package/tailwind.config.js +2 -2
  46. package/core/FeaturedLink/component.css +0 -7
  47. package/src/core/FeaturedLink/component.css +0 -6
package/core/Notice.jsx CHANGED
@@ -325,7 +325,7 @@ var Flash = function Flash(_ref) {
325
325
  size: "1.5rem",
326
326
  additionalCSS: "mr-16 self-baseline"
327
327
  }), /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement("p", {
328
- className: "ui-flash-text ".concat(FLASH_TEXT_COLOR[type]),
328
+ className: "ui-text-p1 mr-16 ".concat(FLASH_TEXT_COLOR[type]),
329
329
  dangerouslySetInnerHTML: {
330
330
  __html: safeContent
331
331
  }
@@ -822,7 +822,7 @@ var Icon_component = __webpack_require__(9008);
822
822
  ;// CONCATENATED MODULE: ./src/core/Notice/component.jsx
823
823
 
824
824
 
825
- var contentWrapperClasses = "font-medium w-full pr-8 text-p3 self-center";
825
+ var contentWrapperClasses = "w-full pr-8 ui-text-p3 self-center";
826
826
 
827
827
 
828
828
 
@@ -887,7 +887,7 @@ var component_Notice = function Notice(_ref2) {
887
887
  }, /*#__PURE__*/external_commonjs_react_commonjs2_react_default().createElement(Icon_component["default"], {
888
888
  name: "icon-gui-close",
889
889
  size: "1.25rem",
890
- color: "text-white"
890
+ color: "text-cool-black"
891
891
  }))));
892
892
  };
893
893
 
@@ -86,7 +86,7 @@
86
86
  .ui-uptime-key {
87
87
  @apply block mt-16 mr-20 bg-transparent;
88
88
  @apply sm:inline-block sm:mt-0;
89
- @apply font-light text-p2 text-white block sm:inline-flex items-center;
89
+ @apply font-medium text-p2 text-white block sm:inline-flex items-center;
90
90
  }
91
91
 
92
92
  .ui-uptime-key:first-child {
package/core/Uptime.jsx CHANGED
@@ -37,10 +37,12 @@ var FeaturedLink = function FeaturedLink(_ref) {
37
37
  flush = _ref$flush === void 0 ? false : _ref$flush,
38
38
  _ref$reverse = _ref.reverse,
39
39
  reverse = _ref$reverse === void 0 ? false : _ref$reverse,
40
+ _ref$additionalCSS = _ref.additionalCSS,
41
+ additionalCSS = _ref$additionalCSS === void 0 ? "" : _ref$additionalCSS,
40
42
  children = _ref.children;
41
43
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("a", {
42
44
  href: url,
43
- className: "ui-featured-link group ".concat(textSize, " ").concat(flush ? "" : "py-8"),
45
+ className: "font-sans font-bold block text-gui-default hover:text-gui-hover focus:text-gui-focus focus:outline-gui-focus group ui-".concat(textSize, " ").concat(flush ? "" : "py-8", " ").concat(additionalCSS),
44
46
  style: {
45
47
  "--featured-link-icon-size": "var(".concat(textSize.replace("text", "--fs"), ")")
46
48
  }
@@ -48,12 +50,12 @@ var FeaturedLink = function FeaturedLink(_ref) {
48
50
  name: "icon-gui-link-arrow",
49
51
  size: "calc(var(--featured-link-icon-size) * 1.25)",
50
52
  color: iconColor,
51
- additionalCSS: "ui-featured-link-icon align-middle mr-8 relative -top-1 -right-4 transition-all group-hover:right-0 transform rotate-180"
53
+ additionalCSS: "align-middle mr-8 relative -top-1 -right-4 transition-all group-hover:right-0 transform rotate-180"
52
54
  }), children) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Icon_component_jsx__WEBPACK_IMPORTED_MODULE_2__["default"], {
53
55
  name: "icon-gui-link-arrow",
54
56
  size: "calc(var(--featured-link-icon-size) * 1.25)",
55
57
  color: iconColor,
56
- additionalCSS: "ui-featured-link-icon align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0"
58
+ additionalCSS: "align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0"
57
59
  })));
58
60
  };
59
61
 
@@ -62,7 +64,9 @@ FeaturedLink.propTypes = {
62
64
  children: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),
63
65
  textSize: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
64
66
  iconColor: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
65
- flush: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool)
67
+ flush: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool),
68
+ reverse: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool),
69
+ additionalCSS: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)
66
70
  };
67
71
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FeaturedLink);
68
72
 
@@ -817,7 +821,7 @@ function Uptime(_ref8) {
817
821
 
818
822
  if (data && data.error) {
819
823
  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement("div", {
820
- className: "flex sm:flex-row justify-center items-center p-24 border rounded font-sans font-light text-p2 ".concat(themes[theme].text),
824
+ className: "flex sm:flex-row justify-center items-center p-24 border rounded ui-text-p2 ".concat(themes[theme].text),
821
825
  "data-id": "uptime-error"
822
826
  }, "Sorry, we can\u2019t retrieve uptime data right now.");
823
827
  }
package/core/styles.css CHANGED
@@ -525,25 +525,32 @@
525
525
  }
526
526
 
527
527
  .ui-text-code {
528
- @apply font-mono font-medium text-code;
528
+ @apply font-mono font-normal text-code;
529
529
  }
530
530
 
531
531
  .ui-text-code2 {
532
- @apply font-mono font-medium text-code2;
532
+ @apply font-mono font-normal text-code2;
533
533
  }
534
534
 
535
535
  .ui-text-code-inline {
536
- @apply font-mono font-medium text-code text-charcoal-grey bg-light-grey p-inline-code rounded-sm mx-1;
536
+ @apply font-mono font-normal text-code text-charcoal-grey bg-light-grey p-inline-code rounded-sm mx-1;
537
537
  }
538
538
 
539
539
  .ui-unordered-list {
540
- @apply text-p1 font-medium text-cool-black;
541
- @apply list-disc ml-32 my-16;
540
+ @apply text-p1 font-medium text-charcoal-grey;
541
+ @apply ml-32 my-16;
542
+ @apply list-disc;
542
543
  }
543
544
 
544
545
  .ui-ordered-list {
545
546
  @apply text-p1 font-medium text-charcoal-grey;
546
- @apply ml-32 my-16 list-decimal;
547
+ @apply ml-32 my-16;
548
+ @apply list-decimal;
549
+ }
550
+
551
+ .ui-ordered-list li,
552
+ .ui-unordered-list li {
553
+ @apply mb-8;
547
554
  }
548
555
 
549
556
  .ui-unordered-list li > *:last-of-type:not(ul):not(ol),
@@ -552,11 +559,11 @@
552
559
  }
553
560
 
554
561
  .ui-unordered-list ul {
555
- @apply ml-24 mt-16 list-circle;
562
+ @apply ml-24 my-8 list-circle;
556
563
  }
557
564
 
558
565
  .ui-ordered-list ol {
559
- @apply ml-24 mt-16 list-decimal;
566
+ @apply ml-24 my-16 list-decimal;
560
567
  }
561
568
 
562
569
  .ui-unordered-list ul ul {
@@ -567,34 +574,6 @@
567
574
  @apply my-8;
568
575
  }
569
576
 
570
- .ui-ordered-list li,
571
- .ui-unordered-list li {
572
- @apply font-medium font-sans tracking-widen-0;
573
- line-height: var(--lh-extra-relaxed);
574
- }
575
-
576
- .ui-unordered-list-with-emphasis {
577
- @apply text-p1 font-medium text-cool-black;
578
- @apply list-disc ml-32 mt-32 -mb-12;
579
- }
580
-
581
- .ui-unordered-list-with-emphasis li div {
582
- @apply relative -top-12;
583
- }
584
-
585
- .ui-unordered-list-with-emphasis li div > strong {
586
- @apply block;
587
- }
588
-
589
- .ui-unordered-list-with-emphasis ul {
590
- margin-top: calc(var(--spacing-16) + var(--spacing-8));
591
- @apply ml-24 list-circle;
592
- }
593
-
594
- .ui-unordered-list-with-emphasis ul ul {
595
- @apply list-square;
596
- }
597
-
598
577
  .ui-link {
599
578
  @apply text-gui-default;
600
579
  @apply hover:text-gui-hover active:text-gui-active disabled:text-gui-unavailable;
@@ -607,6 +586,10 @@
607
586
  @apply focus:text-charcoal-grey focus:outline-gui-focus-neutral;
608
587
  @apply underline;
609
588
  }
589
+
590
+ .ui-figcaption {
591
+ @apply font-mono text-p3 text-neutral-800;
592
+ }
610
593
  }
611
594
  @layer components {
612
595
  .ui-checkbox-p1 {
@@ -680,7 +663,7 @@
680
663
  }
681
664
  @layer components {
682
665
  .ui-input {
683
- @apply text-p2 font-light bg-light-grey rounded p-input w-full leading-none appearance-none border border-mid-grey transition-input;
666
+ @apply text-p2 font-medium bg-light-grey rounded p-input w-full leading-none appearance-none border border-mid-grey transition-input;
684
667
  @apply hover:bg-white hover:shadow-input hover:border-transparent;
685
668
  @apply focus:bg-white focus:shadow-input focus:border-transparent focus:outline-gui-focus;
686
669
  @apply max-w-screen-sm;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ably/ui",
3
- "version": "11.7.1-dev.d65c98c",
3
+ "version": "12.0.0",
4
4
  "description": "Home of the Ably design system library ([design.ably.com](https://design.ably.com)). It provides a showcase, development/test environment and a publishing pipeline for different distributables.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3,8 +3,8 @@
3
3
  <div class="ui-contact-footer-box">
4
4
  <%= render(AblyUi::Core::Icon.new(name: "icon-display-live-chat", size: "3rem", additional_css: "block mb-16")) %>
5
5
  <div>
6
- <div class="text-h3 mb-24">Live Chat</div>
7
- <p class="text-p1 font-light">Reach out team of experts over chat powered by Ably.</p>
6
+ <div class="ui-text-h3 mb-24">Live Chat</div>
7
+ <p class="ui-text-p1">Reach out team of experts over chat powered by Ably.</p>
8
8
  </div>
9
9
  <%= tag.button type: "button", class: "ui-btn-secondary self-start mt-16", data: { id: "open-chat-widget", enabled_label: "Start a live chat", disabled_label: "Live chat unavailable" }, disabled: true do %>
10
10
  Live chat unavailable
@@ -13,18 +13,18 @@
13
13
  <div class="ui-contact-footer-box">
14
14
  <%= render(AblyUi::Core::Icon.new(name: "icon-display-call-mobile", size: "3rem", additional_css: "block mb-16")) %>
15
15
  <div class="flex-grow">
16
- <div class="text-h3 mb-24">Call us</div>
17
- <p class="text-p1 font-light">
18
- <span class="block"><strong class="text-p1 font-medium">+1 877 434 5287</strong> (USA, toll free) </span>
19
- <span class="block"><strong class="text-p1 font-medium">+44 20 3318 4689</strong> (UK) </span>
16
+ <div class="ui-text-h3 mb-24">Call us</div>
17
+ <p class="ui-text-p1">
18
+ <span class="block"><strong class="font-bold">+1 877 434 5287</strong> (USA, toll free) </span>
19
+ <span class="block"><strong class="font-bold">+44 20 3318 4689</strong> (UK) </span>
20
20
  </p>
21
21
  </div>
22
22
  </div>
23
23
  <div class="ui-contact-footer-box">
24
24
  <%= render(AblyUi::Core::Icon.new(name: "icon-display-tech-account-comms", size: "3rem", additional_css: "block mb-16")) %>
25
25
  <div>
26
- <div class="text-h3 mb-24">Technical and account support</div>
27
- <p class="text-p1 font-light">We&apos;re standing by to help with any questions or code.</p>
26
+ <div class="ui-text-h3 mb-24">Technical and account support</div>
27
+ <p class="ui-text-p1">We&apos;re standing by to help with any questions or code.</p>
28
28
  </div>
29
29
  <%= link_to 'Get support now', abs_url("/support"), class: "ui-btn-secondary self-start p-btn mt-16" %>
30
30
  </div>
@@ -16,8 +16,8 @@ export default function ContactFooter({ urlBase }) {
16
16
  <div className="ui-contact-footer-box">
17
17
  <Icon name="icon-display-live-chat" size="3rem" additionalCSS="block mb-16" />
18
18
  <div>
19
- <div className="text-h3 mb-24">Live Chat</div>
20
- <p className="text-p1 font-light">Reach out team of experts over chat powered by Ably.</p>
19
+ <div className="ui-text-h3 mb-24">Live Chat</div>
20
+ <p className="ui-text-p1">Reach out team of experts over chat powered by Ably.</p>
21
21
  </div>
22
22
  <button
23
23
  type="button"
@@ -34,13 +34,13 @@ export default function ContactFooter({ urlBase }) {
34
34
  <div className="ui-contact-footer-box">
35
35
  <Icon name="icon-display-call-mobile" size="3rem" additionalCSS="block mb-16" />
36
36
  <div className="flex-grow">
37
- <div className="text-h3 mb-24">Call us</div>
38
- <p className="text-p1 font-light">
37
+ <div className="ui-text-h3 mb-24">Call us</div>
38
+ <p className="ui-text-p1">
39
39
  <span className="block">
40
- <strong className="text-p1 font-medium">+1 877 434 5287</strong> (USA, toll free)
40
+ <strong className="font-bold">+1 877 434 5287</strong> (USA, toll free)
41
41
  </span>
42
42
  <span className="block">
43
- <strong className="text-p1 font-medium">+44 20 3318 4689</strong> (UK)
43
+ <strong className="font-bold">+44 20 3318 4689</strong> (UK)
44
44
  </span>
45
45
  </p>
46
46
  </div>
@@ -49,8 +49,8 @@ export default function ContactFooter({ urlBase }) {
49
49
  <div className="ui-contact-footer-box">
50
50
  <Icon name="icon-display-tech-account-comms" size="3rem" additionalCSS="block mb-16" />
51
51
  <div>
52
- <div className="text-h3 mb-24">Technical and account support</div>
53
- <p className="text-p1 font-light">We&apos;re standing by to help with any questions or code.</p>
52
+ <div className="ui-text-h3 mb-24">Technical and account support</div>
53
+ <p className="ui-text-p1">We&apos;re standing by to help with any questions or code.</p>
54
54
  </div>
55
55
  <a className="ui-btn-secondary self-start p-btn mt-16" href={absUrl("/support")}>
56
56
  Get support now
@@ -92,7 +92,7 @@ const Link = ({ url, title, subtitle, iconName, children }) => {
92
92
  {title}
93
93
  {iconName ? <Icon name={iconName} size="1rem" color="text-cool-black" additionalCSS="align-middle ml-8 relative -top-1 -left-4" /> : null}
94
94
  </p>
95
- {subtitle ? <p className="text-p3 mb-16 text-dark-grey">{subtitle}</p> : null}
95
+ {subtitle ? <p className="ui-text-p3 mb-16">{subtitle}</p> : null}
96
96
  {children}
97
97
  </a>
98
98
  );
@@ -6,14 +6,14 @@
6
6
  <div class="p-24 sm:p-32 flex-1 h-full">
7
7
  <div class="flex flex-col h-full space-between">
8
8
  <span class="flex-1">
9
- <div class="text-h3 mb-24 flex-1"><%= @title %> </div>
10
- <p class="text-p1 font-light"><%= @subtitle %></p>
9
+ <div class="ui-text-h3 text-white mb-24 flex-1"><%= @title %> </div>
10
+ <p class="ui-text-p1 text-white"><%= @subtitle %></p>
11
11
  <%= tag.button type: "button", class: "ui-btn-secondary-invert self-start mt-24", data: { id: "open-chat-widget", enabled_label: live_chat_label, disabled_label: live_chat_disabled_label }, disabled: true do %>
12
12
  <%= live_chat_disabled_label %>
13
13
  <% end %>
14
14
  </span>
15
15
  <span class="flex-0 mt-24 md:mt-0">
16
- <p class="text-p1 font-light">
16
+ <p class="ui-text-p1 text-white">
17
17
  Don’t want to chat?
18
18
  <%= link_to 'Get in touch via our contact page', abs_url("/contact"), class: "text-white underline font-medium hover:text-gui-hover focus:text-gui-focus focus:outline-gui-focus" %>
19
19
  </p>
@@ -24,9 +24,9 @@
24
24
  <div class="bg-white rounded-lg p-24 sm:p-32 w-auto">
25
25
  <div class="flex flex-col h-full space-between">
26
26
  <span class="flex-1">
27
- <div class="text-h3 mb-24">Try our APIs for free</div>
28
- <p class="text-p1 font-medium mb-16">Our free plan includes</p>
29
- <ul class="relative ml-24 text-p1 font-light leading-8">
27
+ <div class="ui-text-h3 mb-24">Try our APIs for free</div>
28
+ <p class="ui-text-p1 mb-16">Our free plan includes</p>
29
+ <ul class="relative ml-24 ui-text-p1">
30
30
  <li>
31
31
  <%= render(AblyUi::Core::Icon.new(name: "icon-gui-tick", size: "1.5rem", additional_css: "align-text-bottom")) %>
32
32
  6m messages per month
@@ -1,15 +1,15 @@
1
- <%= link_to(@url, class: "ui-featured-link group #{@text_size} #{@flush ? '' : 'py-8'} #{@additional_css}", style: "--featured-link-icon-size: var(#{@text_size.gsub("text", "--fs")})") do %>
1
+ <%= link_to(@url, class: "font-sans font-bold block text-gui-default hover:text-gui-hover focus:text-gui-focus focus:outline-gui-focus group ui-#{@text_size} #{@flush ? '' : 'py-8'} #{@additional_css}", style: "--featured-link-icon-size: var(#{@text_size.gsub("text", "--fs")})") do %>
2
2
  <% if @reverse %>
3
3
  <%= render(AblyUi::Core::Icon.new(name: "icon-gui-link-arrow",
4
4
  size: "calc(var(--featured-link-icon-size) * 1.25)",
5
5
  color: @icon_color,
6
- additional_css: "ui-featured-link-icon align-middle mr-8 relative -top-1 -right-4 transition-all group-hover:right-0 transform rotate-180")) %>
6
+ additional_css: "align-middle mr-8 relative -top-1 -right-4 transition-all group-hover:right-0 transform rotate-180")) %>
7
7
  <%= content -%>
8
8
  <% else %>
9
9
  <%= content -%><%= render(AblyUi::Core::Icon.new(name: "icon-gui-link-arrow",
10
10
  size: "calc(var(--featured-link-icon-size) * 1.25)",
11
11
  color: @icon_color,
12
- additional_css: "ui-featured-link-icon align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0")) %>
12
+ additional_css: "align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0")) %>
13
13
  <% end %>
14
14
 
15
15
  <% end %>
@@ -1 +0,0 @@
1
- import "./component.css";
@@ -3,20 +3,35 @@ import T from "prop-types";
3
3
 
4
4
  import Icon from "../Icon/component.jsx";
5
5
 
6
- const FeaturedLink = ({ url, textSize = "text-p2", iconColor = "text-cool-black", flush = false, reverse = false, children }) => (
6
+ const FeaturedLink = ({ url, textSize = "text-p2", iconColor = "text-cool-black", flush = false, reverse = false, additionalCSS = "", children }) => (
7
7
  <a
8
8
  href={url}
9
- className={`ui-featured-link group ${textSize} ${flush ? "" : "py-8"}`}
9
+ className={`font-sans font-bold block text-gui-default hover:text-gui-hover focus:text-gui-focus focus:outline-gui-focus group ui-${textSize} ${
10
+ flush ? "" : "py-8"
11
+ } ${additionalCSS}`}
10
12
  style={{ "--featured-link-icon-size": `var(${textSize.replace("text", "--fs")})` }}
11
13
  >
12
- {reverse ? <>
13
- <Icon name="icon-gui-link-arrow" size={`calc(var(--featured-link-icon-size) * 1.25)`} color={iconColor} additionalCSS="ui-featured-link-icon align-middle mr-8 relative -top-1 -right-4 transition-all group-hover:right-0 transform rotate-180" />
14
- {children}
15
- </> :
16
- <>
17
- {children}
18
- <Icon name="icon-gui-link-arrow" size={`calc(var(--featured-link-icon-size) * 1.25)`} color={iconColor} additionalCSS="ui-featured-link-icon align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0" />
19
- </>}
14
+ {reverse ? (
15
+ <>
16
+ <Icon
17
+ name="icon-gui-link-arrow"
18
+ size={`calc(var(--featured-link-icon-size) * 1.25)`}
19
+ color={iconColor}
20
+ additionalCSS="align-middle mr-8 relative -top-1 -right-4 transition-all group-hover:right-0 transform rotate-180"
21
+ />
22
+ {children}
23
+ </>
24
+ ) : (
25
+ <>
26
+ {children}
27
+ <Icon
28
+ name="icon-gui-link-arrow"
29
+ size={`calc(var(--featured-link-icon-size) * 1.25)`}
30
+ color={iconColor}
31
+ additionalCSS="align-middle ml-8 relative -top-1 -left-4 transition-all group-hover:left-0"
32
+ />
33
+ </>
34
+ )}
20
35
  </a>
21
36
  );
22
37
 
@@ -26,6 +41,8 @@ FeaturedLink.propTypes = {
26
41
  textSize: T.string,
27
42
  iconColor: T.string,
28
43
  flush: T.bool,
44
+ reverse: T.bool,
45
+ additionalCSS: T.string,
29
46
  };
30
47
 
31
48
  export default FeaturedLink;
@@ -13,10 +13,6 @@
13
13
  transform: translateY(-200%) rotateX(-90deg);
14
14
  }
15
15
 
16
- .ui-flash-text {
17
- @apply mr-16 text-p1;
18
- }
19
-
20
16
  /* dynamic content inside flash, can't add classes */
21
17
  .ui-flash-text a {
22
18
  @apply underline;
@@ -125,7 +125,7 @@ const Flash = ({ id, type, content, removeFlash }) => {
125
125
  <div className={`ui-flash-message ui-grid-px ${animateEntry ? "ui-flash-message-enter" : ""}`} style={style} ref={ref} data-id="ui-flash">
126
126
  <div className={`${FLASH_BG_COLOR[type]} p-32 flex align-center rounded shadow-container-subtle`}>
127
127
  {withIcons[type] && <Icon name={withIcons[type]} color={iconColor[type]} size="1.5rem" additionalCSS="mr-16 self-baseline" />}
128
- <p className={`ui-flash-text ${FLASH_TEXT_COLOR[type]}`} dangerouslySetInnerHTML={{ __html: safeContent }} />
128
+ <p className={`ui-text-p1 mr-16 ${FLASH_TEXT_COLOR[type]}`} dangerouslySetInnerHTML={{ __html: safeContent }} />
129
129
  <button type="button" className="p-0 ml-auto self-start focus:outline-none" onClick={closeFlash}>
130
130
  <Icon name="icon-gui-close" color={iconColor[type]} size="1.5rem" additionalCSS="transition-colors" />
131
131
  </button>
@@ -3,10 +3,10 @@
3
3
  <div class="col-span-full md:col-span-2">
4
4
  <div class="flex flex-row p-menu-row-snug">
5
5
  <%= image_tag(ably_stack_path, alt: "Ably homepage", class: "mr-24 -mt-16") %>
6
- <h2 class="text-overline2 col-span-full font-mono font-bold uppercase tracking-widen-0.16">The Ably Platform</h2>
6
+ <h2 class="ui-text-overline2 col-span-full font-mono uppercase tracking-widen-0.16">The Ably Platform</h2>
7
7
  </div>
8
8
  <div class="md:col-span-4 md:w-3/4 xs:w-3/5 w-full">
9
- <p class="font-sans text-p3 py-16 font-bold p-menu-row-snug">
9
+ <p class="ui-text-p3 font-bold py-16 p-menu-row-snug">
10
10
  Easily power any realtime experience in your application via a simple API that handles everything realtime.
11
11
  </p>
12
12
  </div>
@@ -13,10 +13,10 @@ export default function Footer({ paths, urlBase }) {
13
13
  <div className="col-span-full md:col-span-2">
14
14
  <div className="flex flex-row p-menu-row-snug">
15
15
  <img className="mr-24 -mt-16" src={paths.ablyStack} alt="Ably homepage" />
16
- <h2 className="text-overline2 font-mono font-bold col-span-full uppercase tracking-widen-0.16">The Ably Platform</h2>
16
+ <h2 className="ui-text-overline2 col-span-full">The Ably Platform</h2>
17
17
  </div>
18
18
  <div className="md:col-span-4 md:w-3/4 xs:w-3/5 w-full">
19
- <p className="font-sans text-p3 py-16 font-bold p-menu-row-snug">
19
+ <p className="ui-text-p3 font-bold py-16 p-menu-row-snug">
20
20
  Easily power any realtime experience in your application via a simple API that handles everything realtime.
21
21
  </p>
22
22
  </div>
@@ -105,7 +105,7 @@
105
105
  }
106
106
 
107
107
  .ui-meganav-overline {
108
- @apply text-overline2 text-cool-black uppercase font-bold font-mono tracking-widen-0.16 p-overline;
108
+ @apply text-overline2 text-cool-black uppercase font-medium font-mono tracking-widen-0.16 p-overline;
109
109
  }
110
110
 
111
111
  .ui-meganav-hr {
@@ -7,7 +7,7 @@
7
7
  <h3 class="ui-meganav-overline ml-24">The Ably Platform</h3>
8
8
  </div>
9
9
 
10
- <p class="text-p2 font-bold text-cool-black mb-24 leading-normal" style="max-width: 330px">
10
+ <p class="ui-text-p2 font-bold mb-24" style="max-width: 330px">
11
11
  Easily power any realtime experience in your application. No complex infrastructure to manage or provision. Just a simple API that handles everything
12
12
  realtime, and lets you focus on your code.
13
13
  </p>
@@ -12,7 +12,7 @@ const MeganavContentProducts = ({ paths, absUrl }) => (
12
12
  <img src={paths.ablyStack} alt="Ably homepage" />
13
13
  <h3 className="ui-meganav-overline ml-24">The Ably Platform</h3>
14
14
  </div>
15
- <p className="text-p2 font-bold text-cool-black mb-24 leading-normal" style={{ maxWidth: "330px" }}>
15
+ <p className="ui-text-p2 font-bold mb-24" style={{ maxWidth: "330px" }}>
16
16
  Easily power any realtime experience in your application. No complex infrastructure to manage or provision. Just a simple API that handles everything
17
17
  realtime, and lets you focus on your code.
18
18
  </p>
@@ -1,7 +1,7 @@
1
1
  <%# Note the style attribute is used for entry animation %>
2
2
  <%= tag.div class: "ui-announcement #{bg_color} #{text_color}", data: { id: "ui-notice" }, style: "max-height: 0; overflow: hidden" do %>
3
3
  <div class="ui-grid-px py-16 max-w-screen-xl mx-auto flex items-start">
4
- <%= content_wrapper class: "font-medium w-full pr-8 text-p3 self-center" do %>
4
+ <%= content_wrapper class: "w-full pr-8 ui-text-p3 self-center" do %>
5
5
  <strong class="font-bold whitespace-nowrap pr-4"><%= @contents[:title] %></strong>
6
6
  <span class="pr-4"><%= @contents[:body_text] %></span>
7
7
  <span class="underline cursor-pointer whitespace-nowrap"><%= @contents[:button_label] %></span>
@@ -9,7 +9,7 @@
9
9
 
10
10
  <% if close_btn? %>
11
11
  <%= button_tag type: 'button', class: 'h-20 w-20 mt-4 ml-auto border-none bg-none self-baseline' do %>
12
- <%= render(AblyUi::Core::Icon.new(name: "icon-gui-close", size: "1.25rem", color: "text-white")) %>
12
+ <%= render(AblyUi::Core::Icon.new(name: "icon-gui-close", size: "1.25rem", color: "text-cool-black")) %>
13
13
  <% end %>
14
14
  <% end %>
15
15
  </div>
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect } from "react";
2
2
  import T from "prop-types";
3
3
 
4
- const contentWrapperClasses = "font-medium w-full pr-8 text-p3 self-center";
4
+ const contentWrapperClasses = "w-full pr-8 ui-text-p3 self-center";
5
5
 
6
6
  import NoticeScripts from "./component.js";
7
7
  import Icon from "../Icon/component.jsx";
@@ -45,7 +45,7 @@ const Notice = ({ buttonLink, buttonLabel, bodyText, title, config, closeBtn, bg
45
45
 
46
46
  {closeBtn && (
47
47
  <button type="button" className="ml-auto h-20 w-20 border-none bg-none self-baseline">
48
- <Icon name="icon-gui-close" size="1.25rem" color="text-white" />
48
+ <Icon name="icon-gui-close" size="1.25rem" color="text-cool-black" />
49
49
  </button>
50
50
  )}
51
51
  </div>
@@ -36,15 +36,15 @@
36
36
  <% if company[:layout] == "quotes" %>
37
37
  <%= render(AblyUi::Core::Icon.new(name: "quote", size: "1.25rem", color: "text-cool-black")) %>
38
38
 
39
- <p class="text-quote font-light mb-24"><%= company[:quote] %></p>
39
+ <p class="ui-text-quote mb-24"><%= company[:quote] %></p>
40
40
 
41
41
  <div class="flex items-center">
42
42
  <div class="flex-shrink-0 flex-grow-0 mr-16 overflow-hidden rounded-full flex align-center justify-center w-48 h-48">
43
43
  <%= image_tag company[:author][:thumbnail], alt: "Picture of #{company[:author][:name]}, #{company[:author][:title]}", class: "w-48 h-48 filter-grayscale" %>
44
44
  </div>
45
45
  <div>
46
- <p class="text-p2 font-medium"><%= company[:author][:name] %></p>
47
- <p class="text-p3 font-light"><%= company[:author][:title] %></p>
46
+ <p class="ui-text-p2"><%= company[:author][:name] %></p>
47
+ <p class="ui-text-p3"><%= company[:author][:title] %></p>
48
48
  </div>
49
49
  </div>
50
50
  <% end %>
@@ -54,16 +54,16 @@
54
54
  <% company[:columns].each_with_index do |col, n| %>
55
55
  <% if company[:columns].last == col %>
56
56
  <div class="flex-1 mt-40 sm:mt-0 <%= col[:classname] %>" data-id="casestudy-column">
57
- <p class="text-h4 pb-24"><%= col[:heading] %></p>
58
- <p class="text-p1 font-light"><%= col[:text] %></p>
57
+ <p class="ui-text-h4 pb-24"><%= col[:heading] %></p>
58
+ <p class="ui-text-p1"><%= col[:text] %></p>
59
59
  <%- if col[:button] %>
60
60
  <a class="ui-btn self-start p-btn mt-24" href="<%= col[:button][:href] %>"><%= col[:button][:label] %></a>
61
61
  <% end %>
62
62
  </div>
63
63
  <% else %>
64
64
  <div class="flex-1 mt-40 sm:mt-0 mr-24 sm:mr-32 xl:mr-64 <%= col[:classname] %>" data-id="casestudy-column">
65
- <p class="text-title-xl font-extra-large"><%= col[:heading] %></p>
66
- <p class="text-p1 font-light mb-0 sm:mb-32"><%= col[:text] %></p>
65
+ <p class="ui-text-title-xl"><%= col[:heading] %></p>
66
+ <p class="ui-text-p1 mb-0 sm:mb-32"><%= col[:text] %></p>
67
67
  </div>
68
68
  <% end %>
69
69
  <% end %>
@@ -86,7 +86,7 @@
86
86
  .ui-uptime-key {
87
87
  @apply block mt-16 mr-20 bg-transparent;
88
88
  @apply sm:inline-block sm:mt-0;
89
- @apply font-light text-p2 text-white block sm:inline-flex items-center;
89
+ @apply font-medium text-p2 text-white block sm:inline-flex items-center;
90
90
  }
91
91
 
92
92
  .ui-uptime-key:first-child {
@@ -139,10 +139,7 @@ export default function Uptime({ serverUrl, linkTo = null, theme = "light" }) {
139
139
 
140
140
  if (data && data.error) {
141
141
  return (
142
- <div
143
- className={`flex sm:flex-row justify-center items-center p-24 border rounded font-sans font-light text-p2 ${themes[theme].text}`}
144
- data-id="uptime-error"
145
- >
142
+ <div className={`flex sm:flex-row justify-center items-center p-24 border rounded ui-text-p2 ${themes[theme].text}`} data-id="uptime-error">
146
143
  Sorry, we can’t retrieve uptime data right now.
147
144
  </div>
148
145
  );