CINXE.COM

Release Notes | Abstract

<!DOCTYPE html><!-- Last Published: Wed Jan 22 2025 11:29:33 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="www.abstract.com" data-wf-page="643d81ef999b1c110372ad67" data-wf-site="5ff3926f03b3ba26b7d639cb" lang="en"><head><meta charset="utf-8"/><title>Release Notes | Abstract</title><meta content="Check out the full release notes for the latest version of Abstract." name="description"/><meta content="Release Notes | Abstract" property="og:title"/><meta content="Check out the full release notes for the latest version of Abstract." property="og:description"/><meta content="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/60061327121b5e3fd81c338c_og-release-notes.png" property="og:image"/><meta content="Release Notes | Abstract" property="twitter:title"/><meta content="Check out the full release notes for the latest version of Abstract." property="twitter:description"/><meta content="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/60061327121b5e3fd81c338c_og-release-notes.png" property="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/css/fs-abstract-v2.c5aefa228.css" rel="stylesheet" type="text/css"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/5ff3926f03b3bac721d639f4_favicon-small.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/5ff3926f03b3baa809d639fc_favicon.png" rel="apple-touch-icon"/><script src="https://www.google.com/recaptcha/api.js" type="text/javascript"></script><!-- Iubenda --> <script type="text/javascript"> var _iub = _iub || []; _iub.csConfiguration = {"consentOnScroll":false,"whitelabel":false,"lang":"en","siteId":1889649,"cookiePolicyId":91605901,"cookiePolicyUrl":"https://www.abstract.com/legal/cookie-policy/", "banner":{ "acceptButtonDisplay":true,"acceptButtonColor":"#ffffff","acceptButtonCaptionColor":"#191a1b","rejectButtonColor":"#0073CE","rejectButtonCaptionColor":"white","position":"float-bottom-left","textColor":"white","backgroundColor":"#242424","content":"We use cookies to collect and analyze information on site performance and usage, and to enhance and customize content and advertisements. To find out more or to change your cookie settings, please visit our <a href=\"https://www.abstract.com/legal/cookie-policy/\">Cookie Policy</a>." }}; </script> <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script> <script> !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(key,e){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.src="https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=e};analytics.SNIPPET_VERSION="4.13.1"; analytics.load("Ro3i6wRonikkJnYwYzAGOAuFmaQQHQx4"); analytics.page(); }}(); </script> <!-- Customer IO Tag --> <script type="text/javascript"> (function() { var t = document.createElement('script'), s = document.getElementsByTagName('script')[0]; t.async = true; t.id = 'cio-forms-handler'; t.setAttribute('data-site-id', '80a43a6f3aab248f9bec'); t.setAttribute('data-base-url', 'https://customerioforms.com'); t.src = 'https://customerioforms.com/assets/forms.js'; s.parentNode.insertBefore(t, s); })(); </script> <style> /* Remove tap highlight on mobile */ input, textarea, button, select, a { -webkit-tap-highlight-color: transparent; tap-highlight-color: transparent; } /*smoother text*/ body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-smoothing: antialiased; text-rendering: optimizeLegibility; } /*make inputs unstyled in safari*/ textarea, input.text, input[type="text"], input[type="button"], input[type="submit"], { -webkit-appearance: none; } /* Get rid of textarea resizer */ textarea { resize: none } </style><meta content="Release Notes | Abstract" property="twitter:title"> <meta content="Check out the full release notes for the latest version of Abstract." property="twitter:description"> <meta content="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/60061327121b5e3fd81c338c_og-release-notes.png" property="twitter:image"> <meta property="og:type" content="website"> <meta content="summary_large_image" name="twitter:card"> <meta property="og:image:alt" content="Check out the full release notes for the latest version of Abstract."/></head><body class="c-body"><div class="custom-styles w-embed"><style> /*set default font*/ html { font-size:16px; } html, body{ height: 100%; } /* Blending modes */ .mbm-normal{mix-blend-mode: normal;} .mbm-multiply{mix-blend-mode: multiply;} .mbm-screen{mix-blend-mode: screen;} .mbm-overlay{mix-blend-mode: overlay;} .mbm-darken{mix-blend-mode: darken;} .mbm-lighten{mix-blend-mode: lighten;} .mbm-color-dodge{mix-blend-mode: color-dodge} .mbm-color-burn{mix-blend-mode: color-burn;} .mbm-hard-light{mix-blend-mode: hard-light;} .mbm-soft-light{mix-blend-mode: soft-light;} .mbm-difference{mix-blend-mode: difference;} .mbm-exclusion{mix-blend-mode: exclusion;} .mbm-hue{mix-blend-mode: hue;} .mbm-saturation{mix-blend-mode: saturation;} .mbm-color{mix-blend-mode: color;} .mbm-luminosity{mix-blend-mode: luminosity;} /*colorize text selection */ ::-moz-selection { /* Firefox */ background: #C9D5D3; } ::selection { background: #C9D5D3; } /*add no events class*/ .no-pointer-events { pointer-events: none; } /*add no select class*/ .no-select { -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Safari */ -khtml-user-select: none; /* Konqueror HTML */ -moz-user-select: none; /* Old versions of Firefox */ -ms-user-select: none; /* Internet Explorer/Edge */ user-select: none; /* Non-prefixed version, currently supported by Chrome, Opera and Firefox */ } /*make sure the upper headings in rich text blocks are without top margin*/ .rich-text h1:first-child { margin-top: 0; } .rich-text-designis h2:first-child { margin-top: 0; } .rich-text h2:first-child { margin-top: 0; } .rich-text h3:first-child { margin-top: 0; } .rich-text h4:first-child { margin-top: 0; } .rich-text h5:first-child { margin-top: 0; } .rich-text h6:first-child { margin-top: 0; } .rich-text figure:first-child { margin-top: 0; } /*make last elements in rich text to be marginless*/ .rich-text p:last-child { margin-bottom: 0; } .rich-text-designis p:last-child { margin-bottom: 0; } .rich-text blockquote:last-child { margin-bottom: 0; } .rich-text ol:last-child { margin-bottom: 0; } .rich-text ul:last-child { margin-bottom: 0; } .rich-text ol li:last-child { margin-bottom: 0; } .rich-text ul li:last-child { margin-bottom: 0; } .rich-text blockquote:before { content: '\201C'; position: absolute; top: 0; left: -0.4em; text-align: right; } .rich-text blockquote:after { content: '\201D'; } /*reset selects, buttons, and links*/ .w-input, .w-select, a { color: inherit; text-decoration: inherit; font-size: inherit; } .text-highlight a { color: inherit; text-decoration: none; cursor: inherit; } .text-highlight a:hover { color: inherit; text-decoration: none; } .w-select { /* resetting default form style for custom icon*/ -moz-appearance: none; -webkit-appearance: none; appearance: none; background-position: right 0.5rem center !important; } .block-quote:before { content: '\201C'; position: absolute; top: 0; left: -0.4em; text-align: right; } .text-gtsuper { font-variant-numeric: lining-nums; } .break-text { overflow-wrap: break-word; word-wrap: break-word; -ms-word-break: break-all; word-break: break-word; -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } ol.decimal li:before { counter-increment: item; content: counters(item, ".") " "; display: inline-block; margin-right: 1rem; font-weight: 700; } ol.decimal li:first-child { counter-reset: item; } ol.lower-latin>li, ol.lower-latin>li>ol>li { list-style: lower-latin; list-style-position: inside; } ol.lower-latin>li:before, ol.lower-latin>li>ol>li:before { display: none; content: ""; margin: 0; } ol.decimal ol.lower-latin li { list-style: lower-latin; list-style-position: inside; } ol.decimal ul>li:before { display: none; } ol.lower-latin ol.lower-roman li { list-style: lower-roman; list-style-position: inside; } .r-item-info, .r-main-item-img, .r-grid-hover { transition: transform 700ms cubic-bezier(0.8,0,0.2,1) 0ms; } .r-grid-blocks-list .r-grid-block:nth-child(7n-13), .r-grid-blocks-list .r-grid-block:nth-last-child(1):nth-child(odd){ width: 100%; padding-top: 50%; } .cs-form-wrapper { transition: opacity 350ms linear 0ms; } .cs-form-close, .cs-form-open { cursor: pointer; } .cs-form-wrapper.active { display: flex; opacity: 1; transition: opacity 350ms linear 0ms; } input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active { -webkit-box-shadow: 0 0 0 30px white inset !important; } .cs-form-group label { transition: all 200ms ease-in-out 0ms; } .cs-form-group label.active { font-size: 12px; top: 10px; } .cs-form-group label.focused { color: #4C5FD5; } .cs-form-highlight.active { transition: width 100ms cubic-bezier(.7,0,.3,1) 0ms; } .cs-form-highlight.active { width: 100%; transition: width 300ms cubic-bezier(.7,0,.3,1) 0ms; } .cs-form-text-area { resize: vertical; height: 48px; } .cs-form-field { font-size: 16px } .cs-form-label { user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; pointer-events:none; } .r-marquee-link-block { position: relative; overflow: hidden; } .r-marquee-item-block { width: auto; display: flex; position: relative; --offset: 100%; --move-initial: 0; --move-final: calc(-200% + var(--offset)); transform: translate3d(0,0,0); transform: translate3d(var(--move-initial), 0, 0); animation: marquee 10s linear infinite; animation-play-state: running; } @keyframes marquee { 0% { transform: translate3d(var(--move-initial), 0, 0); } 100% { transform: translate3d(var(--move-final), 0, 0); } } </style></div><div class="custom-styles w-embed"><style> /*set default font*/ html { font-size:16px; } html, body{ height: 100%; } /* Blending modes */ .mbm-normal{mix-blend-mode: normal;} .mbm-multiply{mix-blend-mode: multiply;} .mbm-screen{mix-blend-mode: screen;} .mbm-overlay{mix-blend-mode: overlay;} .mbm-darken{mix-blend-mode: darken;} .mbm-lighten{mix-blend-mode: lighten;} .mbm-color-dodge{mix-blend-mode: color-dodge} .mbm-color-burn{mix-blend-mode: color-burn;} .mbm-hard-light{mix-blend-mode: hard-light;} .mbm-soft-light{mix-blend-mode: soft-light;} .mbm-difference{mix-blend-mode: difference;} .mbm-exclusion{mix-blend-mode: exclusion;} .mbm-hue{mix-blend-mode: hue;} .mbm-saturation{mix-blend-mode: saturation;} .mbm-color{mix-blend-mode: color;} .mbm-luminosity{mix-blend-mode: luminosity;} /*colorize text selection */ ::-moz-selection { /* Firefox */ background: #C9D5D3; } ::selection { background: #C9D5D3; } /*add no events class*/ .no-pointer-events { pointer-events: none; } /*add no select class*/ .no-select { -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Safari */ -khtml-user-select: none; /* Konqueror HTML */ -moz-user-select: none; /* Old versions of Firefox */ -ms-user-select: none; /* Internet Explorer/Edge */ user-select: none; /* Non-prefixed version, currently supported by Chrome, Opera and Firefox */ } /*make sure the upper headings in rich text blocks are without top margin*/ .rich-text h1:first-child { margin-top: 0; } .rich-text-designis h2:first-child { margin-top: 0; } .rich-text h2:first-child { margin-top: 0; } .rich-text h3:first-child { margin-top: 0; } .rich-text h4:first-child { margin-top: 0; } .rich-text h5:first-child { margin-top: 0; } .rich-text h6:first-child { margin-top: 0; } .rich-text figure:first-child { margin-top: 0; } /*make last elements in rich text to be marginless*/ .rich-text p:last-child { margin-bottom: 0; } .rich-text-designis p:last-child { margin-bottom: 0; } .rich-text blockquote:last-child { margin-bottom: 0; } .rich-text ol:last-child { margin-bottom: 0; } .rich-text ul:last-child { margin-bottom: 0; } .rich-text ol li:last-child { margin-bottom: 0; } .rich-text ul li:last-child { margin-bottom: 0; } .rich-text blockquote:before { content: '\201C'; position: absolute; top: 0; left: -0.4em; text-align: right; } .rich-text blockquote:after { content: '\201D'; } /*reset selects, buttons, and links*/ .w-input, .w-select, a { color: inherit; text-decoration: inherit; font-size: inherit; } .text-highlight a { color: inherit; text-decoration: none; cursor: inherit; } .text-highlight a:hover { color: inherit; text-decoration: none; } .w-select { /* resetting default form style for custom icon*/ -moz-appearance: none; -webkit-appearance: none; appearance: none; background-position: right 0.5rem center !important; } .block-quote:before { content: '\201C'; position: absolute; top: 0; left: -0.4em; text-align: right; } .text-gtsuper { font-variant-numeric: lining-nums; } .break-text { overflow-wrap: break-word; word-wrap: break-word; -ms-word-break: break-all; word-break: break-word; -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; } ol.decimal li:before { counter-increment: item; content: counters(item, ".") " "; display: inline-block; margin-right: 1rem; font-weight: 700; } ol.decimal li:first-child { counter-reset: item; } ol.lower-latin>li, ol.lower-latin>li>ol>li { list-style: lower-latin; list-style-position: inside; } ol.lower-latin>li:before, ol.lower-latin>li>ol>li:before { display: none; content: ""; margin: 0; } ol.decimal ol.lower-latin li { list-style: lower-latin; list-style-position: inside; } ol.decimal ul>li:before { display: none; } ol.lower-latin ol.lower-roman li { list-style: lower-roman; list-style-position: inside; } .r-item-info, .r-main-item-img, .r-grid-hover { transition: transform 700ms cubic-bezier(0.8,0,0.2,1) 0ms; } .r-grid-blocks-list .r-grid-block:nth-child(7n-13), .r-grid-blocks-list .r-grid-block:nth-last-child(1):nth-child(odd){ width: 100%; padding-top: 50%; } .cs-form-wrapper { transition: opacity 350ms linear 0ms; } .cs-form-close, .cs-form-open { cursor: pointer; } .cs-form-wrapper.active { display: flex; opacity: 1; transition: opacity 350ms linear 0ms; } input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active { -webkit-box-shadow: 0 0 0 30px white inset !important; } .cs-form-group label { transition: all 200ms ease-in-out 0ms; } .cs-form-group label.active { font-size: 12px; top: 10px; } .cs-form-group label.focused { color: #4C5FD5; } .cs-form-highlight.active { transition: width 100ms cubic-bezier(.7,0,.3,1) 0ms; } .cs-form-highlight.active { width: 100%; transition: width 300ms cubic-bezier(.7,0,.3,1) 0ms; } .cs-form-text-area { resize: vertical; height: 48px; } .cs-form-field { font-size: 16px } .cs-form-label { user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; pointer-events:none; } .r-marquee-link-block { position: relative; overflow: hidden; } .r-marquee-item-block { width: auto; display: flex; position: relative; --offset: 100%; --move-initial: 0; --move-final: calc(-200% + var(--offset)); transform: translate3d(0,0,0); transform: translate3d(var(--move-initial), 0, 0); animation: marquee 10s linear infinite; animation-play-state: running; } @keyframes marquee { 0% { transform: translate3d(var(--move-initial), 0, 0); } 100% { transform: translate3d(var(--move-final), 0, 0); } } </style></div><a id="skip-link" href="#content" class="skip-link no-anchor">skip to content<br/></a><section class="cs-form-wrapper"><div class="cs-form-click-away cs-form-close"></div><div class="cs-form-modal"><div class="cs-form w-form"><div class="cs-form-header"><div class="cs-form-title">Contact Sales</div><div class="cs-form-exit cs-form-close"><div class="cs-exit-bar cs-exit-bar-1"></div><div class="cs-exit-bar cs-exit-bar-2"></div></div></div><form id="wf-form-contactSales" name="wf-form-contactSales" data-name="contactSales" method="get" class="cs-form" data-wf-page-id="643d81ef999b1c110372ad67" data-wf-element-id="2f26523a-676b-0736-1758-07b13c5a20e2"><div class="cs-form-group"><input class="cs-form-field w-input" maxlength="256" name="email" data-name="email" placeholder="" type="email" id="email-11" required=""/><label for="Email-11" class="cs-form-label">Email</label><div class="cs-form-highlight"></div></div><div class="cs-form-group"><input class="cs-form-field w-input" maxlength="256" name="firstName" data-name="firstName" placeholder="" type="text" id="firstName-8" required=""/><label for="First-Name" class="cs-form-label">First name</label><div class="cs-form-highlight"></div></div><div class="cs-form-group"><input class="cs-form-field w-input" maxlength="256" name="lastName" data-name="lastName" placeholder="" type="text" id="lastName-8" required=""/><label for="Last-Name" class="cs-form-label">Last name</label><div class="cs-form-highlight"></div></div><div class="cs-form-group"><input class="cs-form-field w-input" maxlength="256" name="company" data-name="company" placeholder="" type="text" id="company-9" required=""/><label for="Email-11" class="cs-form-label">Company</label><div class="cs-form-highlight"></div></div><div class="cs-form-group"><select id="Estimated-Design-Users" name="Est.-Design-Users" data-name="Est. Design Users" required="" class="cs-form-field w-select"><option value="">Select one...</option><option value="100+ contributors">100+ contributors</option><option value="50-99 contributors">50-99 contributors</option><option value="25-49 contributors">25-49 contributors</option><option value="10-24 contributors">10-24 contributors</option></select><label for="" class="cs-form-label">Estimated Contributor Seats</label><div class="cs-form-highlight"></div></div><div class="cs-form-group"><textarea id="comments-7" name="comments" maxlength="5000" data-name="comments" placeholder="" class="cs-form-field cs-form-text-area w-input"></textarea><label for="Email-12" class="cs-form-label">Comments (optional)</label><div class="cs-form-highlight"></div></div><div class="cs-form-section-title">I’d like to learn more about:</div><label class="w-checkbox cs-form-radio-field"><div class="w-checkbox-input w-checkbox-input--inputType-custom cs-form-checkbox"></div><input id="organizingDesigns" type="checkbox" name="organizingDesigns" data-name="organizingDesigns" style="opacity:0;position:absolute;z-index:-1"/><span for="organizingDesigns" class="cs-form-radio-text w-form-label">Organizing designs into projects</span></label><label class="w-checkbox cs-form-radio-field"><div class="w-checkbox-input w-checkbox-input--inputType-custom cs-form-checkbox"></div><input id="streamliningReviews" type="checkbox" name="streamliningReviews" data-name="streamliningReviews" style="opacity:0;position:absolute;z-index:-1"/><span for="streamliningReviews" class="cs-form-radio-text w-form-label">Streamlining the review process</span></label><label class="w-checkbox cs-form-radio-field"><div class="w-checkbox-input w-checkbox-input--inputType-custom cs-form-checkbox"></div><input id="sharingEvolution" type="checkbox" name="sharingEvolution" data-name="sharingEvolution" style="opacity:0;position:absolute;z-index:-1"/><span for="sharingEvolution" class="cs-form-radio-text w-form-label">Sharing the evolution of designs</span></label><label class="w-checkbox cs-form-radio-field"><div class="w-checkbox-input w-checkbox-input--inputType-custom cs-form-checkbox"></div><input id="versionControl" type="checkbox" name="versionControl" data-name="versionControl" style="opacity:0;position:absolute;z-index:-1"/><span for="versionControl" class="cs-form-radio-text w-form-label">Version control for Sketch files</span></label><label class="w-checkbox cs-form-radio-field"><div class="w-checkbox-input w-checkbox-input--inputType-custom cs-form-checkbox"></div><input id="other" type="checkbox" name="other" data-name="other" style="opacity:0;position:absolute;z-index:-1"/><span for="other" class="cs-form-radio-text w-form-label">Other</span></label><div data-sitekey="6LcaaBcqAAAAAHGxbhANyJehugFxM3XEhAlSrzNU" class="w-form-formrecaptcha g-recaptcha g-recaptcha-error g-recaptcha-disabled"></div><input type="submit" data-wait="Please wait..." class="cs-form-submit-btn w-button" value="Submit"/></form><div class="cs-success w-form-done"><img src="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/6100656f4aa5c63a91736881_check.svg" loading="lazy" alt="Checkmark Illustration" class="cs-success-img"/><div class="cs-success-headline">Thank you!</div><div class="cs-success-copy">You&#x27;ll hear back from our team shortly.</div><div class="button button-small cs-success-btn cs-form-close">Close Form</div></div><div class="cs-error w-form-fail"><div class="cs-error-message">Oops! Something didn&#x27;t work. Please try again.</div></div></div></div></section><div class="page"><div class="topbar-wrapper"><div class="w-dyn-list"><div class="collection-empty w-dyn-empty"><div>No items found.</div></div></div></div><div class="nav-outer-wrapper"><div class="c-header"><div class="c-section c-section-header"><div class="c-grid c-grid-header"><div id="w-node-d2797371-cb25-451d-99b8-1de0a99b68da-a99b68d7" class="header-logo-container"><a href="/" class="header-logo-link w-inline-block"><img src="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/60c388bf3c3ae4d1d10653e7_Abstract_Wordmark-White.svg" loading="lazy" alt="" class="header-logo"/></a></div><div data-w-id="d2797371-cb25-451d-99b8-1de0a99b68f2" class="header-menu-icon"><div class="header-menu-bar header-menu-bar-1"><img src="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/61534838ccd7f756b3a17a1e_navbar.svg" loading="lazy" alt="Menu Bar" class="header-menu-bar-img"/></div><div class="header-menu-bar header-menu-bar-2"><img src="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/61534838ccd7f756b3a17a1e_navbar.svg" loading="lazy" alt="Menu Bar" class="header-menu-bar-img"/></div><div class="header-menu-bar header-menu-bar-3"><img src="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/61534838ccd7f756b3a17a1e_navbar.svg" loading="lazy" alt="Menu Bar" class="header-menu-bar-img"/></div></div><div id="w-node-d2797371-cb25-451d-99b8-1de0a99b68ed-a99b68d7" class="header-cta-container"><a href="https://app.abstract.com/signin" class="c-link c-link-text c-link-text-reverse">Sign in</a></div></div></div><div data-w-id="d2797371-cb25-451d-99b8-1de0a99b68f9" class="c-section c-section-mobile-menu"><div class="c-grid c-grid-header-mobile-nav"><div class="header-mobile-nav"><a href="#" class="header-mobile-nav-link w-inline-block"><div>Notebooks</div></a><a href="/" class="header-mobile-nav-link w-inline-block"><div>Branches</div></a><a href="/pricing" class="header-mobile-nav-link w-inline-block"><div>Pricing</div></a></div><div class="header-mobile-ctas"><a href="https://app.abstract.com/signup" class="c-link c-link-btn c-link-btn-white">Try Notebooks</a><a href="https://app.abstract.com/signin" class="header-mobile-sign-in">Sign in</a></div></div></div></div></div><div id="content" class="main"><section class="section s-releases"><div class="container-max"><h1 class="heading-xl space-bottom-xl">Release Notes</h1><div class="releases-tabs-wrapper"><div data-duration-in="100" data-duration-out="100" data-current="branches" data-easing="ease" class="w-tabs"><div class="tabs-menu w-tab-menu"><a data-w-tab="notebooks" id="notebooks" class="tab-link w-inline-block w-tab-link"><h2 class="heading-releases-tab">Notebooks</h2></a><a data-w-tab="branches" id="branches" class="tab-link w-inline-block w-tab-link w--current"><h2 class="heading-releases-tab">Branches</h2></a></div><div class="tabs-content tc-releases w-tab-content"><div data-w-tab="notebooks" class="w-tab-pane"><div class="collection-list-wrapper-2 w-dyn-list"><div role="list" class="releases-notebooks w-dyn-items"><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">October 28, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="c665bae9-894d-ff70-32f2-53fc87aad70d" class="release-title"><div class="heading-m">Updated Slack Integration for Notebooks</div></div><div style="opacity:1;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p>The updated Slack integration for Abstract Notebooks automatically shares notifications for notebook reviews to one or more of your Slack channels of choice, and unfurls Notebook links pasted into Slack. </p><p>‍<br/>‍</p></div></div></div></div></div></div></div></div><div class="collection-list-wrapper-3 w-dyn-list"><div role="list" class="releases-notebooks w-dyn-items"><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">October 14, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Tables in Notebooks</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p>Sometimes your ideas need a little more structure. Whether you need to track a project, take structured notes, or organize data sets, tables are a great way to organize your thoughts. Notebooks users can now add and delete tables in their Notebook by selecting the table icon in the context menu. Tables can be retrofitted to your requirements by resizing columns, adding cell colors, and multi-selecting rows, columns, and cells. </p><p>‍</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">October 11, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Public Link Previews</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><li>When a Notebooks user pastes a publicly shared URL from a variety of popular sites, Notebooks will render the preview of the content from the URL. </li><li>We have ensured we have support for public links the following providers and content types: Figma Files, Figma Prototypes, Loom videos, YouTube videos, Trello boards, Giphy, and Spotify. However, in addition to these core providers, we support public link previews for URLs from over 1900 providers. </li><p>‍</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">September 27, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Improvements to Decisions, Custom Templates, and URLs</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><ul role="list"><li>Added the ability to edit and delete recorded decision blocks.  While it&#x27;s important to maintain the history of decisions in an initiative, sometime you need to correct a typo or add clarifying details or links.</li><li>Updated the custom templates administration page to warn administrators of unsaved template changes, improve cursor movement between title and template body, and add hover text to edit and delete icons to improve accessibility.</li><li>Users can now highlight text in a Notebook, paste a URL from the clipboard, and the text will become a link.</li></ul></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">August 26, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Image Drag and Drop Updates</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p>Images and designs are vital components to a building out a Notebook and explaining your work. We have improved the drag and drop functionality when repositioning images and designs in a Notebook to make interacting with these components easier. Here are a few updates we made to improve repositioning images and designs: </p><ul role="list"><li>When an image or design selected, the curser will become a hand-grab curser . </li><li>The image or design selected will dim to illustrate that it is selected.</li><li> A thumbnail preview of the design will display it is repositioned</li><li>The cursor will reflect the exact location where the item will be repositioned to. </li></ul></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">August 24, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Add content from FigJam</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p>Participants in the <a target="_blank" href="https://help.figma.com/hc/en-us/articles/4406929675543-FigJam-plugins">FigJam Plugin Beta</a> can now use the <a target="_blank" href="https://www.figma.com/community/plugin/900484667691435460">Abstract Notebooks plugin for Figma</a> to add content and groups to Notebooks from FigJam.</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">August 12, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Public Share Links</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p>Notebooks contributors can now edit their Notebook settings to share a Notebook to anyone with the Notebook link. Unauthenticated users viewing a Notebook will be able to read the contents of the Notebook (written and image content, comments, and reviews) but will not have edit access. These unauthenticated users can create an account and request organization access to edit the Notebook. </p><p>‍</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">August 5, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Decisions section</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p>Contributors can now add decisions to Notebooks to show how and why a design choice was made. Notebook participants can view the series of decisions made in new section at the top of the Notebook.  Record a decision title and, if desired, additional information about why, where, and how the decision was made.  You can even link to detailed conversations, whether those are in a Review, Comment, meeting recording, chat thread, or elsewhere.</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">July 27, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Collapsible Reviews section</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p>We&#x27;ve collapsed the Reviews section at the top of the notebook to show only the most recent review by default.  You can click &quot;View all&quot; to expand and view each of the notebook&#x27;s existing reviews.  We&#x27;ve also moved the &quot;Request review&quot; button next to the status selector to make more room for the notebook&#x27;s title.</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">July 23, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Abstract Home, Reviews, and Custom Templates</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p><strong>Abstract Home</strong></p><ul role="list"><li>Design isn’t linear.  Moving from project to project as well as designing and building in tandem can lead to losing track of where we started. On Abstract Home, your most recently viewed notebooks and pressing action items are listed for you so that you can continue where you left off.</li></ul><p>‍</p><p><strong>Reviews</strong> </p><ul role="list"><li>Notebook reviewers can now see all their reviews at a glance on the review tab. Reviews are categorized by Assigned to me, My Reviews, and Completed reviews. Users of both Branches and Notebooks can toggle between the reviews that are visible.</li></ul><p>‍</p><p><strong>Custom Templates</strong></p><ul role="list"><li>Templates save teams time and ensure that Notebooks have consistent content.  Enterprise organizations can now extend the default set of Notebook templates to include custom-defined templates which meet the specific needs of their organizations.</li></ul></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">July 15, 2021</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="772e21db-afa2-28c0-ef41-3b5b881e91e7" class="release-title"><div class="heading-m">Resolve comments </div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-l-t text-black w-richtext"><p>Notebooks Contributors can now resolve individual comments made by themselves or others within a Notebook to indicate that the comment does not require further conversation. </p><p>‍</p></div></div></div></div></div></div></div><div role="navigation" aria-label="List" class="w-pagination-wrapper releases-pagination"><div class="buttons-wrapper"><a href="?881e91dc_page=2" aria-label="Next Page" class="w-pagination-next button button-secondary button-small space-top-m"><div class="w-inline-block">View More</div></a><link rel="prerender" href="?881e91dc_page=2"/></div></div></div></div><div data-w-tab="branches" class="w-tab-pane w--tab-active"><div class="w-dyn-list"><div role="list" class="releases-versions-last w-dyn-items"><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-m-t text-black">October 23, 2024</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="b123c1ef-2e02-922f-634a-edbdecc15ac8" class="release-title"><div class="heading-m">98.4.2</div></div><div style="opacity:1;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p>This version contains various updates to ensure better app performance and stability</p></div><div class="space-top-m space-bottom-l"><div class="buttons-wrapper"><a href="https://api.goabstract.com/releases/latest/download" target="_blank" class="button w-button">Download</a></div></div></div></div></div></div></div></div></div><div class="w-dyn-list"><div role="list" class="releases-versions w-dyn-items"><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">August 30, 2024</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.4.1</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p>This version includes minor bug fixes and performance improvements</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">July 23, 2024</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.4.0</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p><strong>Bug Fixes &amp; Updates</strong></p><ul role="list"><li>Various dependencies update to ensure better performance and security</li><li>Fixed bug causing certain menus to flicker in desktop app</li><li>Minor bug fixes and performance improvements</li></ul></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">May 27, 2024</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.3.3</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p><strong>Dependencies Updates</strong></p><ul role="list"><li>Enhanced the Abstract SDK&#x27;s file export functionality to handle special characters. This update ensures more robust and reliable file handling across various naming conventions</li><li>Implemented various bug fixes and stability improvements</li></ul></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">February 1, 2024</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.3.2</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p><strong>Dependencies Updates</strong></p><ul role="list"><li>We have updated various dependencies to ensure better performance and security. This helps in maintaining the app&#x27;s robustness and reliability.</li></ul><p><strong>Security Updates</strong></p><ul role="list"><li>Fixed potential security vulnerability which could have allowed arbitrary code execution in the application.</li></ul></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">December 13, 2023</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.3.1</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p><strong>Fixed Issue</strong>: In version 98.3 of our web and desktop apps, users encountered a glitch where clicking on active branches within a Project page did not redirect to the branch details page. With this update, we&#x27;ve reinstated the functionality found in previous versions. Now, clicking on a branch will smoothly take you to its details page.</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">November 28, 2023</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.3.0</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p><strong>Dependencies Updates</strong></p><ul role="list"><li>We have updated various dependencies to ensure better performance and security. This helps in maintaining the app&#x27;s robustness and reliability.</li></ul><p><strong>Improved Compatibility with Older Sketch Versions</strong></p><ul role="list"><li>Understanding the diverse needs of our users, this update includes improved compatibility with older versions of Sketch. Now, users working on different versions of Sketch can experience seamless integration with our app.</li></ul><p><strong>Updated Emojis Library</strong></p><ul role="list"><li>Emojis are a fun and integral part of digital communication. We&#x27;ve updated our emojis library to include the latest emojis, ensuring you have access to a wide range of expressions for your creative work.</li></ul></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">August 2, 2023</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.2.14</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p>This version includes minor bug fixes and performance improvements</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">June 9, 2023</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.2.12</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p><strong>User experience improvements, performance enhancements, and bug fixes*</strong></p><h5><strong>* Bug fix to note: </strong>solved an issue where new team members could not be added as Guests or Viewers  due to &quot;not having enough contributor seats&quot;. This was illogical, as Guests &amp; Viewers don&#x27;t require paid contributor seats in order to be added to organizations.<br/><br/></h5><h4><strong>FYI: </strong><em>this update will need to be installed &quot;manually&quot; as per the below:</em></h4><ol role="list"><li>Click on <strong>Abstract</strong> in the Apple menu bar, usually located at the top of your screen. </li><li>Click <strong>Restart and Install Update. </strong></li><li>Your app will restart, and you now have the latest version.  <strong><br/></strong></li></ol><figure class="w-richtext-align-floatleft w-richtext-figure-type-image"><div><img src="https://cdn.prod.website-files.com/5ff3926f03b3ba043ed639d1/649202b7017a815f6f572266_16600972377869.png" alt="Screen" loading="lazy"/></div></figure><p><strong><br/></strong></p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">March 15, 2023</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.2.10</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p>Performance upgrades and bug fixes</p></div></div></div></div></div></div><div role="listitem" class="release-item w-dyn-item"><div class="flex-grid"><div class="col-wrapper flex-h-ab-js"><div class="col col-1-d col-2-ml"><div class="release-dash"></div></div><div class="col col-4-d col-10-ml col-3-ds col-2-dmax"><div class="text-xl text-black">February 22, 2023</div></div><div class="col col-2-ml show-mobile-wide"></div><div class="col col-10-ml"><div data-w-id="5455774a-0967-b07e-eb16-21cd805b3402" class="release-title"><div class="heading-m">98.2.9</div></div><div style="opacity:0;-webkit-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(1, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);height:0REM" class="accordion"><div class="rich-text text-xl space-top-m text-black w-richtext"><p>This version includes minor bug fixes and performance improvements</p></div></div></div></div></div></div></div><div role="navigation" aria-label="List" class="w-pagination-wrapper releases-pagination"><a id="load-more-versions" href="?805b33f8_page=2" aria-label="Next Page" class="w-pagination-next button button-secondary button-small space-top-m"><div class="w-inline-block">View More</div></a><link rel="prerender" href="?805b33f8_page=2"/></div></div></div></div></div><div class="releases-twitter"><div class="button-link"><div class="ico ico-button-link ico-large w-embed"><svg viewBox="0 0 14 12" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M4.33195 11.6991C9.52919 11.6991 12.3731 7.38923 12.3731 3.65802C12.3731 3.53677 12.3731 3.41552 12.3675 3.29427C12.9187 2.89745 13.3982 2.39592 13.7785 1.82824C13.2714 2.05421 12.7258 2.20302 12.1526 2.27467C12.7368 1.92745 13.1832 1.3708 13.3982 0.709433C12.8526 1.0346 12.2463 1.26608 11.6015 1.39284C11.0889 0.841706 10.3504 0.5 9.54021 0.5C7.98049 0.5 6.71287 1.76762 6.71287 3.32734C6.71287 3.5478 6.74042 3.76274 6.78452 3.97217C4.43667 3.85092 2.35336 2.7266 0.958981 1.01807C0.71648 1.43694 0.578695 1.92194 0.578695 2.44001C0.578695 3.42103 1.08023 4.28632 1.83529 4.79337C1.37233 4.77684 0.936936 4.65007 0.551139 4.44064C0.551139 4.45166 0.551139 4.46269 0.551139 4.47922C0.551139 5.84604 1.52665 6.99241 2.81632 7.25145C2.57933 7.31758 2.33132 7.35065 2.07228 7.35065C1.89041 7.35065 1.71404 7.33412 1.54319 7.30105C1.90143 8.42537 2.94859 9.24106 4.18314 9.2631C3.21314 10.0237 1.99512 10.4756 0.672389 10.4756C0.446422 10.4756 0.220455 10.4646 0 10.437C1.25108 11.2307 2.73916 11.6991 4.33195 11.6991Z" fill="CurrentColor"/> </svg></div><a href="https://twitter.com/goabstract" class="button-link-link text-l"><strong>Follow Abstract on Twitter</strong></a></div></div></div></div></section><footer class="c-footer-container"><div class="c-section c-section_footer"><div class="c-grid c-grid_footer"><div id="w-node-_5450694c-b7b9-7422-2f9f-d3f12c2bb027-2c2bb025" class="c-footer_col c-footer_col1"><a href="/" class="c-footer_logolink w-inline-block"><img src="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/60c388bf3c3ae4d1d10653e7_Abstract_Wordmark-White.svg" loading="lazy" alt="Abstract logo" class="c-footer_logo"/></a><div class="c-footer_copyright">© Copyright 2025<br/>Abstract Studio Design, Inc.<br/>‍All rights reserved</div></div><div id="w-node-_5450694c-b7b9-7422-2f9f-d3f12c2bb030-2c2bb025" class="c-footer_col test001"><h6 class="c-footer_columntitle">Products</h6><a href="#" class="c-footer_link">Notebooks</a><a href="/" class="c-footer_link">Branches</a><h6 class="c-footer_columntitle c-footer_columntitle-stacked">Use Cases</h6><a href="/it-abstract-com/use-cases/kickoff" class="c-footer_link">Kick Off</a><a href="/it-abstract-com/use-cases/present-designs" class="c-footer_link">Present</a><a href="/it-abstract-com/use-cases/evolve-designs" class="c-footer_link">Evolve</a></div><div id="w-node-_5450694c-b7b9-7422-2f9f-d3f12c2bb03f-2c2bb025" class="c-footer_col"><h6 class="c-footer_columntitle">Resources</h6><a href="/blog" class="c-footer_link">Blog</a><a href="https://help.abstract.com/" target="_blank" class="c-footer_link">Help Center</a><a href="https://help.abstract.com/hc/en-us/articles/360050382291-Contact-Support" target="_blank" class="c-footer_link">Contact Support</a><a href="#" class="c-footer_link cs-form-open">Contact Sales</a><a href="/release-notes" aria-current="page" class="c-footer_link w--current">Release Notes</a><a href="https://status.goabstract.com/" target="_blank" class="c-footer_link">Status</a></div><div id="w-node-_5450694c-b7b9-7422-2f9f-d3f12c2bb052-2c2bb025" class="c-footer_col"><h6 class="c-footer_columntitle">Company</h6><a href="/about" class="c-footer_link">About Us</a><a href="/careers" class="c-footer_link">Careers</a><a href="/legal" class="c-footer_link">Legal</a><a href="/privacy" class="c-footer_link">Privacy</a><a href="/legal/website-terms-of-use" class="c-footer_link">Website Terms of Use</a><h6 class="c-footer_columntitle c-footer_columntitle-stacked">Contact Us</h6><a href="mailto:info@abstract.com" class="c-footer_link">info@abstract.com</a></div><div id="w-node-_5450694c-b7b9-7422-2f9f-d3f12c2bb065-2c2bb025" class="c-footer_col"><h6 class="c-footer_columntitle">Social</h6><a href="https://twitter.com/goabstract" target="_blank" class="c-footer_link">Twitter</a><a href="https://www.linkedin.com/company/17950473/" target="_blank" class="c-footer_link">LinkedIn</a><a href="https://facebook.com/Abstract/" target="_blank" class="c-footer_link">Facebook</a><a href="https://dribbble.com/abstract" target="_blank" class="c-footer_link">Dribbble</a></div><div class="c-footer_copyright c-footer_copyright_mobile">© Copyright 2022<br/>Abstract Studio Design, Inc.<br/>All rights reserved</div></div></div></footer></div></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=5ff3926f03b3ba26b7d639cb" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/5ff3926f03b3ba26b7d639cb/js/fs-abstract-v2.a5752db1312b561cce741500826aa35e.js" type="text/javascript"></script><!-- Twitter Universal Website Tag --> <script> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','nzf0p'); twq('track','PageView'); </script> <!-- Segment Form Tracking --> <script> const formElemList = document.querySelectorAll("form"); formElemList.forEach((form) => { form.addEventListener("submit", (e) => { // on form submission, prevent default e.preventDefault(); // construct a FormData object, which fires the formdata event new FormData(form); }); form.addEventListener("formdata", (e) => { // Get the form data from the event object let data = e.formData; let obj = {}; const entries = [...data.entries()]; entries.forEach((entry) => (obj[entry[0]] = entry[1])); analytics.track(form.attributes[2].nodeValue, obj); }); }); </script> <!-- Contact Sales Form Interactions --> <script> var csForm = document.querySelector('.cs-form-wrapper'); var csFormOpen = document.querySelectorAll('.cs-form-open'); var csFormExit = document.querySelectorAll('.cs-form-close'); csFormOpen.forEach(function(btn) { btn.addEventListener(`click`, function() { if(csForm.classList.contains(`active`)) { csForm.classList.add(`active`) } else { csForm.classList.add(`active`) } }); }); csFormExit.forEach(function(btn) { btn.addEventListener(`click`, function() { if(csForm.classList.contains(`active`)) { csForm.classList.remove(`active`) } else { csForm.classList.remove(`active`) } }); }); const csFormFields = document.querySelectorAll('.cs-form-field') const checkFormState = function (event) { csFormFields.forEach(function (field) { const label = field.nextElementSibling const highlight = label.nextElementSibling if (field === document.activeElement) { label.classList.add('active') label.classList.add('focused') highlight.classList.add('active') } else if (field.value.length > 0) { label.classList.add('active') highlight.classList.remove('active') label.classList.remove('focused') } else { label.classList.remove('active') highlight.classList.remove('active') label.classList.remove('focused') } }) } window.addEventListener('click', checkFormState, false); window.addEventListener('keyup', checkFormState, false); </script> <!-- Segment tracking data-analytics --> <script> 'use strict'; document.addEventListener('DOMContentLoaded', () => { const targetElements = document.querySelectorAll('[data-analytics]'); targetElements.forEach((element) => { element.addEventListener('click', () => { var _a; const event = element.dataset.analytics; if (!event) return; const properties = { text: (_a = element.textContent) !== null && _a !== void 0 ? _a : '', pageUrl: window.location.href, destination: element instanceof HTMLAnchorElement ? element.href : '', }; for (const { name, value } of element.attributes) { const property = name.split('data-property-')[1]; if (!property) continue; properties[property] = value; } window.analytics.track(event, properties); }); }); }); </script> <script> document.addEventListener('DOMContentLoaded', () => { const elements = document.querySelectorAll('[data-analytics]'); elements.forEach((element) => element.addEventListener('click', () => { const event = element.dataset.analytics; const properties = { text: element.textContent || undefined, pageUrl: window.location.href, destination: element instanceof HTMLAnchorElement ? element.href : undefined, }; for (const { name, value } of element.attributes) { const property = name.split('data-property-')[1]; if (!property) continue; properties[property] = value; } window.analytics.track(event, properties); }) ); }); </script> <script> $topBar = $('#topbar'); // hide $topBar if its link links to this page if($topBar.find('a[href]').attr('href')){ if(window.location.href === $topBar.find('a[href]').attr('href').split(/[?#]/)[0]){ $topBar.hide(); } } </script> <!-- F’in sweet Webflow Hacks --> <script> $(document).ready(function() { const listItems = $('li'); listItems.each(function(index, item){ if($(item).text().startsWith('~~')){ indentText(this, 'sub-sub-bullet'); } else if($(item).text().startsWith('~')){ indentText(this, 'sub-bullet'); } }); // indentText function function indentText(li, className){ $(li).addClass(className); const reformatedText = $(li).html().replace(/~+/g,''); $(li).html(reformatedText); } }); </script> <!-- Finsweet Sweet Text script. Add classes to Webflow rich text. --> <script src="https://cdn.finsweet.com/files/sweet-text/richtext-stylesystem2-v1.0.min.js"></script> <!-- Disable Scroll Script --> <script> document.addEventListener('DOMContentLoaded', () => { var $body = $(document.body); var scrollPosition = 0; $('[scroll="disable"]').on('click', function () { var oldWidth = $body.innerWidth(); scrollPosition = window.pageYOffset; $body.css('overflow', 'hidden'); $body.css('position', 'fixed'); $body.css('top', `-${scrollPosition}px`); $body.width(oldWidth); }); $('[scroll="enable"]').on('click', function () { if ($body.css('overflow') != 'hidden') { scrollPosition = window.pageYOffset; } $body.css('overflow', ''); $body.css('position', ''); $body.css('top', ''); $body.width(''); $(window).scrollTop(scrollPosition); }); $('[scroll="both"]').on('click', function () { if ($body.css('overflow') != 'hidden') { var oldWidth = $body.innerWidth(); scrollPosition = window.pageYOffset; $body.css('overflow', 'hidden'); $body.css('position', 'fixed'); $body.css('top', `-${scrollPosition}px`); $body.width(oldWidth); } else { $body.css('overflow', ''); $body.css('position', ''); $body.css('top', ''); $body.width(''); $(window).scrollTop(scrollPosition); } }); }); </script> <!-- Update footer year --> <script> document.querySelector('.footer-year').textContent = new Date().getFullYear(); </script> <!-- Skip to content for screen readers --> <script> document.getElementById('skip-link').addEventListener('click', function(e) { e.preventDefault(); var target = document.getElementById('content'); target.setAttribute('tabindex', '-1'); target.focus(); }); </script> <!-- F’in sweet Webflow Hacks --> <script> // when the DOM is ready $(document).ready(function() { // get the anchor link buttons const menuBtn = $('.no-anchor'); // when each button is clicked menuBtn.click(()=>{ // set a short timeout before taking action // so as to allow hash to be set setTimeout(()=>{ // call removeHash function after set timeout removeHash(); }, 5); // 5 millisecond timeout in this case }); // removeHash function // uses HTML5 history API to manipulate the location bar function removeHash(){ history.replaceState('', document.title, window.location.origin + window.location.pathname + window.location.search); } }); </script> <!-- Topbar remember closed status --> <script> (() => { const getCookie = (key) => { if(- 1 === document.cookie.indexOf(key)) return null; const cookieVal = (document.cookie || '').match(RegExp(`${key}=([^;]+)`)) || []; return (cookieVal)[1] || null; }; const setCookie = (key, value, exp) => document.cookie = `${key}=${value};expires=${exp};`; if(getCookie('topbarClose')) $('.topbar-wrapper').hide(); const handleTopbarClick = () => { if(!getCookie('topbarClose')){ setCookie('topbarClose', '1', new Date(new Date().setDate(new Date().getDate() + 2))); } }; $('.topbar-wrapper .topbar-close').click(handleTopbarClick); })(); </script> <script src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.js"></script> <script> //url queries const urlParams = new URLSearchParams(window.location.search); Cookies.set('utmMedium', urlParams.get('utm_medium')); Cookies.set('utmSource', urlParams.get('utm_source')); Cookies.set('utmTerm', urlParams.get('utm_term')); Cookies.set('utmContent', urlParams.get('utm_content')); Cookies.set('utmCampaign', urlParams.get('utm_campaign')); </script> <script> $('[name="utm_medium"]').val(Cookies.get('utmMedium')); $('[name="utm_source"]').val(Cookies.get('utmSource')); $('[name="utm_campaign"]').val(Cookies.get('utmCampaign')); $('[name="utm_content"]').val(Cookies.get('utmContent')); $('[name="utm_term"]').val(Cookies.get('utmTerm')); </script><!-- F'in sweet CMS Library for Webflow --> <script src="https://cdn.finsweet.com/files/cmslibrary-v1.8.js"></script> <script> document.querySelectorAll('.w-pagination-next').forEach(btn => { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if(entry.isIntersecting){ const list = `.${entry.target.closest('.w-dyn-list').querySelector('.w-dyn-items').className.split(' ')[0]}`; const btnLink = `.${entry.target.className.split(' ')[0]}`; initLoadMore(list, btnLink); observer.unobserve; } }); }, { threshold: 0 }); observer.observe(btn); }); function initLoadMore(list, btn){ new FsLibrary(list).loadmore({ button: btn, resetIx: true, animation: { enable: false, } }); } </script> <script> $( function() { function changeTab() { var tabName = window.location.hash.substr(1); var tabEl = $('[data-w-tab="' + tabName + '"]'); if (tabEl.length) { tabEl.click(); } } //when page is first loaded if(window.location.hash){ changeTab(); } //internal page linking $(window).on('hashchange', changeTab); $('[data-w-tab]').on('click', function(){ history.pushState({}, '', '#'+$(this).data("w-tab")); }); }); </script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10