Vuetify 3: Titan

Rate this content
Bookmark

Learn about the newest features coming to the next version of the framework. See how the core team approached porting Vuetify from Vue 2 to the Vue 3 composition api. Preview updates to core features such as the new layout system, improved testing methodologies, expanded customization options, updates to css utility classes, and much much more.

This talk has been presented at Vue.js London Live 2021, check out the latest edition of this Tech Conference.

FAQ

Viewtify 3 is the next version of the Viewtify framework, set to release in February of next year. It includes numerous updates and new features aimed at improving usability, design consistency, and performance.

Viewtify 3 is scheduled for release in February of next year.

Key updates in Viewtify 3 include the completion of basic compute components, new design concepts, additional interfaces for easier interaction, improved usability, and new browser features. It also includes a new validation system and enhanced animation positioning for menus and dialogues.

Viewtify 3 includes around 42 basic components such as alerts, banners, ratings, buttons, chips, and avatars.

Viewtify 3 features a new validation system that allows for both synchronous and asynchronous validation. This system is more flexible and can be used with multiple components and elements.

The 'density' concept in Viewtify 3, borrowed from Material Design, defines how much vertical space a component occupies. It allows for more compact design options, letting users create applications with less blocky and more space-efficient layouts.

Semantic customization options in Viewtify 3 refer to normalized design aspects that are categorized for ease of use. This includes a new concept called 'variants' which homogenizes functionality across multiple components, making design choices more consistent.

The animation positioning system in Viewtify 3 has been enhanced to make menus and dialogues animate based on their activator's location. This improves the visual feel and performance, resulting in crisp, jitter-free animations.

Viewtify 3 offers improved developer experience with a new VITE plugin, faster compilation times, and better customization options using CSS variables. It also supports advanced browser features like Focus Within.

You can try the alpha version of Viewtify 3 by visiting next.Viewtifyjs.com. You can also follow the releases on the GitHub releases board or join the community on Discord at community.Viewtifyjs.com.

John Leider
John Leider
20 min
21 Oct, 2021

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Hi, I'm John Leader, the creator of Viewtify. Viewtify 3 is the upcoming version with new design concepts, improved usability, and compatibility with modern browsers. The framework has added new features like a validation system, style diversity, semantic customization options, and a density concept. Enhanced customization options, improved performance, and advanced browser support with CSS variables are also highlights of Viewtify 3.
Available in Español: Vuetify 3: Titan

1. Introduction to Viewtify 3

Short description:

Hi, I'm John Leader, the creator of Viewtify. I want to talk about Viewtify 3, the upcoming version with new design concepts, improved usability, and compatibility with modern browsers. We have completed the basic components and added new interfaces and utility classes for easier interaction and customization.

Hi, my name is John Leader. I'm the creator and author of Viewtify. And today I wanted to take a little bit of time to talk about Viewtify 3, the next version that will be releasing February of next year. And, uh, some of the different items and aspects the team has been working on as we've been moving through alpha.

Some of the biggest updates that we have are in the form of the baseline creation of all of the basic compute components for the framework are in. We have lots of new design concepts normalized in their, their terminology so that they're more semantic and easier to work with. We have additional interfaces that allow you to, uh, interact with the components and more intuitive ways that allow you to, uh, have more consistent results. And we've also been working a lot on the actual usability of the various parts of the framework from making it easier to manipulate and work with custom styling, as well as how that gets implemented into your project. And some of the new browser features that we get to take advantage of, uh, as we move away from the internet explorer 11 platform.

Okay? So some of the changes and improvements that we have coming from components stated at the beginning, the basic components for the framework are all complete. These are components that form the foundation for larger implementations. Things like alerts and banners ratings, as well as around 42 other basic components that from buttons to chips, avatars, that we use to create and build some of the more complex composition components. We've added a lot of new interfaces for how you can work with these different components, things that simplify the way that you are able to interact and make different design choices and changes within those components. We've also added some additional utility classes to help you in addition to modifying components based upon their normal prop structures, but also being able to make additional changes through the help of utility classes for text and color and different transforms and whatnot.

2. New Features and Concepts

Short description:

One of the things we've recently added to the framework is a new validation system that allows for inline validation and asynchronous calls. We've also improved the style diversity of input components and implemented an animation positioning system for menus and dialogues. We've introduced semantic customization options and a new concept called variants, which allows for reusable design styles across multiple components. Additionally, we've implemented the density concept from material design, which allows for more control over component size and vertical space.

No. One of the things that we've recently got in the framework that the team has been working on is the form elements and our validation systems. We have a new validation system that is now expanded and it's been added as an available inline provider, as we call them, that allows you to not only implement any type of component or element as a validatable item to an extent, but we've also added new functionality for how you can perform validation, including asynchronous calls in addition to the already existing version two functionality that's available today.

This validation system is built into the new form components in addition to being available inline, as displayed here on the right, where we can now take something that was previously kind of hard coded into inputs and now is something that is flexible and can be used in multiple places. We've also worked a lot on improving the style diversity of input components with a new concept that is in material design called density. I'll talk a little bit more about that later.

In addition to a lot of these new features and functionalities, we still have ported over all of the existing version two styling. That's in addition to the new available options for density that we've created. One of the cool things that we've recently implemented were an animation positioning system for how our menus and our dialogues are what we typically call detachable components, how those operate. And one of the new things that we have that is applied to our system is the way that menus and dialogues animate whenever their activator is clicked is a transform that is based upon the activator's location. So as you can see in the animation here, whenever we open up the dialogue, as opposed to it being an element that just animates from the center of the screen, we're actually now transforming these detachable elements from their original activator location to really kind of improve the visual feel of the actual functionality, but also to improve the performance and how smooth it is whenever you're working with these components so that there is crisp animation, there's no jitteriness, and this is one of my more favorite parts of the new version with all of the way that menus as well work and how they position on the screen. We have a lot more functionality that allows the user to make some really nice aesthetic designs and decisions within their application and just giving the user more options overall.

We have some normalized concepts that I'd like to call semantic customization options that we have began to kind of normalize or pull together multiple different design aspects within beautify and try to put them under a particular category or similar options between multiple components. So that when you're working across the framework, you'll have different components that you're working with, but they'll still be based upon the same kind of interface that you're working with, with multiple different components. And kind of what I mean by that is we have a new concept called variants and what this is, it's a way for us to take some of our mutually design exclusive properties and functionality within version two and kind of put it behind a naming convention so that we can reuse this throughout and actually expand the functionality that is used or available, excuse me, for multiple different components.

An example being the five available that exist primarily in card-based components are contained text, text outline and plane. And in these different design styles are represented in version two, but they're not represented behind any specific naming convention. So what we've kind of done is to homogenize this functionality. We've made it so that it is reusable throughout any card S component alerts. Sheets, banners, list items that give you some additional control over the, not only the, uh, the visual aspect of the component, but, uh, you know, kind of, I stated before, homogenizing making this similar throughout multiple different implementations so that we can, uh, have a similar and same functionality for multiple components that didn't even have the ability to implement these styles in version two.

One of the other things that we have implemented conceptually is, uh, the density from material design and what density is, is a, uh, declaration of how high or vertically, how much a component takes up space-wise whereas size is it modifies components, padding, modifies font size and, and general takes up potentially a larger space on X axis, whereas density, we're just kind of reducing the height. So what we've done here is we've, we've added the ability to combine multiple different aspects of sizing that's available in the framework version two for right now, we have, you know, regular sizing for extra small, small, default, large, extra large. With the introduction of density for version three, we've taken the, some components that you may have worked with that had a, a dense property. It's now been kind of split into two, which those are now compact and comfortable. And these are essentially iterations of a certain pixels, four pixels to be exact, that reduces in scales so that a button or an input will maintain the same visual look. However, it will take up physically less vertical space. And then for components that support both size and density, these actually work together. So you can do things such as having an extra large compact button. If you so choose. And what this does is it gives a lot more options for the user to be able to build their application so that you don't have to have such blocky design or something that is, it takes up a lot of space on the page.

Available in other languages:

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Everything Beyond State Management in Stores with Pinia
Vue.js London Live 2021Vue.js London Live 2021
34 min
Everything Beyond State Management in Stores with Pinia
Top Content
State management is not limited to complex applications and transitioning to a store offers significant benefits. Pinia is a centralized state management solution compatible with Vue 2 and Vue 3, providing advanced devtools support and extensibility with plugins. The core API of Pinia is similar to Vuex, but with a less verbose version of stores and powerful plugins. Pinia allows for easy state inspection, error handling, and testing. It is recommended to create one file per store for better organization and Pinia offers a more efficient performance compared to V-rex.
Welcome to Nuxt 3
Vue.js London Live 2021Vue.js London Live 2021
29 min
Welcome to Nuxt 3
Top Content
Nux3 has made significant improvements in performance, output optimization, and serverless support. Nuxt Bridge brings the Nitro engine for enhanced performance and easier transition between Nuxt 2 and Nuxt Read. Nuxt 3 supports Webpack 5, Bytes, and Vue 3. NextLab has developed brand new websites using Docus technology. Nuxt.js is recommended for building apps faster and simpler, and Nuxt 2 should be used before migrating to Nuxt 3 for stability. DOCUS is a new project that combines Nuxt with additional features like content modules and an admin panel.
One Year Into Vue 3
Vue.js London Live 2021Vue.js London Live 2021
20 min
One Year Into Vue 3
Top Content
Vue 3 has seen significant adoption and improvements in performance, bundle size, architecture, and TypeScript integration. The ecosystem around Vue 3 is catching up, with new tools and frameworks being developed. The Vue.js.org documentation is undergoing a complete overhaul. PNIA is emerging as the go-to state management solution for Vue 3. The options API and composition API are both viable options in Vue 3, with the choice depending on factors such as complexity and familiarity with TypeScript. Vue 3 continues to support CDN installation and is recommended for new projects.
Utilising Rust from Vue with WebAssembly
Vue.js London Live 2021Vue.js London Live 2021
8 min
Utilising Rust from Vue with WebAssembly
Top Content
In this Talk, the speaker demonstrates how to use Rust with WebAssembly in a Vue.js project. They explain that WebAssembly is a binary format that allows for high-performance code and less memory usage in the browser. The speaker shows how to build a Rust example using the WasmPack tool and integrate it into a Vue template. They also demonstrate how to call Rust code from a Vue component and deploy the resulting package to npm for easy sharing and consumption.
Vue: Feature Updates
Vue.js London 2023Vue.js London 2023
44 min
Vue: Feature Updates
Top Content
The Talk discusses the recent feature updates in Vue 3.3, focusing on script setup and TypeScript support. It covers improvements in defining props using imported types and complex types support. The introduction of generic components and reworked signatures for defined components provides more flexibility and better type support. Other features include automatic inference of runtime props, improved define emits and defined slots, and experimental features like reactive props destructure and define model. The Talk also mentions future plans for Vue, including stabilizing suspense and enhancing computer invalidations.
Local State and Server Cache: Finding a Balance
Vue.js London Live 2021Vue.js London Live 2021
24 min
Local State and Server Cache: Finding a Balance
Top Content
This Talk discusses handling local state in software development, particularly when dealing with asynchronous behavior and API requests. It explores the challenges of managing global state and the need for actions when handling server data. The Talk also highlights the issue of fetching data not in Vuex and the challenges of keeping data up-to-date in Vuex. It mentions alternative tools like Apollo Client and React Query for handling local state. The Talk concludes with a discussion on GitLab going public and the celebration that followed.

Workshops on related topic

Vue3: Modern Frontend App Development
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Modern Frontend App Development
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
The Vue3 has been released in mid-2020. Besides many improvements and optimizations, the main feature of Vue3 brings is the Composition API – a new way to write and reuse reactive code. Let's learn more about how to use Composition API efficiently.

Besides core Vue3 features we'll explain examples of how to use popular libraries with Vue3.

Table of contents:
- Introduction to Vue3
- Composition API
- Core libraries
- Vue3 ecosystem

Prerequisites:
IDE of choice (Inellij or VSC) installed
Nodejs + NPM
Using Nitro – Building an App with the Latest Nuxt Rendering Engine
Vue.js London Live 2021Vue.js London Live 2021
117 min
Using Nitro – Building an App with the Latest Nuxt Rendering Engine
Top Content
Workshop
Daniel Roe
Daniel Roe
We'll build a Nuxt project together from scratch using Nitro, the new Nuxt rendering engine, and Nuxt Bridge. We'll explore some of the ways that you can use and deploy Nitro, whilst building a application together with some of the real-world constraints you'd face when deploying an app for your enterprise. Along the way, fire your questions at me and I'll do my best to answer them.
Monitoring 101 for React Developers
React Summit US 2023React Summit US 2023
107 min
Monitoring 101 for React Developers
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
If finding errors in your frontend project is like searching for a needle in a code haystack, then Sentry error monitoring can be your metal detector. Learn the basics of error monitoring with Sentry. Whether you are running a React, Angular, Vue, or just “vanilla” JavaScript, see how Sentry can help you find the who, what, when and where behind errors in your frontend project. 
Workshop level: Intermediate
Going on an adventure with Nuxt 3, Motion UI and Azure
JSNation 2022JSNation 2022
141 min
Going on an adventure with Nuxt 3, Motion UI and Azure
WorkshopFree
Melanie de Leeuw
Melanie de Leeuw
We love easily created and deployed web applications! So, let’s see what a very current tech stack like Nuxt 3, Motion UI and Azure Static Web Apps can do for us. It could very well be a golden trio in modern day web development. Or it could be a fire pit of bugs and errors. Either way it will be a learning adventure for us all. Nuxt 3 has been released just a few months ago, and we cannot wait any longer to explore its new features like its acceptance of Vue 3 and the Nitro Engine. We add a bit of pizzazz to our application with the Sass library Motion UI, because static design is out, and animations are in again.Our driving power of the stack will be Azure. Azure static web apps are new, close to production and a nifty and quick way for developers to deploy their websites. So of course, we must try this out.With some sprinkled Azure Functions on top, we will explore what web development in 2022 can do.
TresJS create 3D experiences declaratively with Vue Components
Vue.js London 2023Vue.js London 2023
137 min
TresJS create 3D experiences declaratively with Vue Components
Workshop
Alvaro Saburido
Alvaro Saburido
- Intro 3D - Intro WebGL- ThreeJS- Why TresJS- Installation or Stackblitz setup - Core Basics- Setting up the Canvas- Scene- Camera- Adding an object- Geometries- Arguments- Props- Slots- The Loop- UseRenderLoop composable- Before and After rendering callbacks- Basic Animations- Materials- Basic Material- Normal Material- Toon Material- Lambert Material- Standard and Physical Material- Metalness, roughness - Lights- AmbientLight- DirectionalLight- PointLights- Shadows- Textures- Loading textures with useTextures- Tips and tricks- Misc- Orbit Controls- Loading models with Cientos- Debugging your scene- Performance
Building Vue forms with VeeValidate
Vue.js London Live 2021Vue.js London Live 2021
176 min
Building Vue forms with VeeValidate
Workshop
Abdelrahman Awad
Abdelrahman Awad
In this workshop, you will learn how to use vee-validate to handle form validation, manage form values and handle submissions effectively. We will start from the basics with a simple login form all the way to using the composition API and building repeatable and multistep forms.

Table of contents:
- Introduction to vee-validate
- Building a basic form with vee-validate components
- Handling validation and form submissions
- Building validatable input components with the composition API
- Field Arrays and repeatable inputs
- Building a multistep form
Prerequisites:
VSCode setup and an empty Vite + Vue project.