Archive

Archive for the ‘Others’ Category

Popular Design News of the Week: January 10, 2022 – January 16, 2022

January 16th, 2022 No comments

Every day design fans submit incredible industry stories to our sister-site, Webdesigner News. Our colleagues sift through it, selecting the very best stories from the design, UX, tech, and development worlds and posting them live on the site.

The best way to keep up with the most important stories for web professionals is to subscribe to Webdesigner News or check out the site regularly. However, in case you missed a day this week, here’s a handy compilation of the top curated stories from the last seven days. Enjoy!

5 UX Tricks You Must Know in 2022

Clay.css

This Might Just Be the Worst Logo We’ve Ever Seen

14 CSS Reveal Animations

Wanda Design System

10 CSS Skeleton Loadings

The 9 Best Coding Games to Build your Programming Skills

PHP in 2022

My First Impressions of Web3

Minimator

Source

The post Popular Design News of the Week: January 10, 2022 – January 16, 2022 first appeared on Webdesigner Depot.

Categories: Designing, Others Tags:

Using the CSS Me Not Bookmarklet to See (and Disable) CSS Files

January 15th, 2022 No comments
Screenshot of a Chrome browser window showing the CSS Me Not bookmarklet circled in red just below the address bar, Below that is a table injected above the CSS-Tricks website showing six stylesheets including an action to disable a sheet, the sheet's media, the sheet's host, and the sheet's name.

Stoyan is absolutely correct. As much as we all love CSS, it’s still an important player in how websites load and using less of it is a good thing. He has a neat new bookmarklet called CSS Me Not to help diagnose unnecessary CSS files, but we’ll get to that in a moment.

The [problem] is that CSS is in the critical path, it blocks rendering and often even JavaScript execution. We love CSS, it’s magic, it can do unbelievable feats and fix broken UIs and manipulate images and draw amazing pictures. We love CSS. We just want… less of it, because of its inherently blocking nature.

Sometimes our sites use entire stylesheets that are simply unnecessary. I hate to admit it, but WordPress is a notorious offender here, loading stylesheets for plugins and blocks that you might not even really be using. I’m in that position on this site as I write. I just haven’t found the time to root out a couple of little stylesheets I don’t need from loading.

Stoyan created a quick bookmarklet called CSS Me Not to see all those CSS files. The big benefit, of course, is that it lets you know what you’re up against.

You could find these stylesheets in DevTools as well, but the CSS Me Not bookmarklet makes it extra easy and has a killer bonus feature: turning off those stylesheets. Testing the bookmarklet here on CSS-Tricks, I can see four stylesheets that WordPress loads (because of settings and plugins) that I know I don’t need.

If you wanted to do this in DevTools instead, you could filter your Network requests by CSS, find the stylesheet that you want to turn off, right-click and block it, and re-load.

DevTools window screenshot with the Network panel open and the select menu open on a listed stylsheet with the option to block the request URL highlighted in bright blue.

I’ve been fighting this fight for ages, dequeuing scripts and styles in WordPress that I don’t want.

Removing totally unused stylesheets is an obvious win, but there is the more squirrely issue of removing unused CSS. I mention in that post the one-true-way of really knowing if any particular CSS is unused, which is attaching a background-image to every selector and then checking the server logs after a decent amount of production time to see which of those images were never requested. Stoyan corroborates my story here:

UnCSS is sort of a “lab”. The “real world” may surprise you. So a trick we did at SomeCompany Inc. was to instrument all the CSS declarations at build time, where each selector gets a 1×1 transparent background image. Then rummage through the server logs after a week or so to see what is actually used.


Using the CSS Me Not Bookmarklet to See (and Disable) CSS Files originally published on CSS-Tricks. You should get the newsletter and become a supporter.

Categories: Designing, Others Tags:

Mondrian Art in CSS From 5 Code Artists

January 14th, 2022 No comments

Mondrian is famous for paintings with big thick black lines forming a grid, where each cell is white, red, yellow, or blue. This aesthetic pairs well with the notoriously rectangular web, and that hasn’t gone unnoticed over the years with CSS developers. I saw some Mondrian Art in CSS going around the other day and figured I’d go looking for others I’ve seen over the years and round them up.

Vasilis van Gemert:
What if Mondrian used CSS instead of paint?

Many people have tried to recreate a work of art by Mondriaan with CSS. It seems like a nice and simple exercise: rectangles are easy with CSS, and now with grid, it is easy to recreate most of his works. I tried it as well, and it turned out to be a bit more complicated than I thought. And the results are, well, surprising.

Jen Simmons Lab:
Mondrian Art in CSS Grid

I love how Jen went the extra mile with the texture. Like most of these examples, CSS grid is used heavily.

Mondrian Art in CSS Grid from Jen Simmons. Includes rough grungy texture across the entire piece.
CodePen Embed Fallback

Jen Schiffer:
var t;: Piet Mondrian

I started with Mondrian not because he is my favorite artist (he is not), or that his work is very recognizeable (it is), but because I thought it would be a fun (yes) and easy start (lol nope) to this project.

Mondrian Art in CSS randomized 12 times in a 4 by 3 grid of boxes. A bright yellow header is above the grid bearing the site title: var t.
CodePen Embed Fallback

Riley Wong:
Make Your Own Mondrian-Style Painting with Code

There is a 12-step tutorial on GitHub.

CodePen Embed Fallback

Adam Fuhrer:
CSS Mondrian

Generative Piet Mondrian style art using CSS grid.

Screenshot of a full page Mondrian art example. There is a refresh button centered at the bottom of the page.

John Broers:
CSS Mondriaan Grid

An example of Mondrian Art in CSS with a "Generate New" option. The example is a square box with plenty of padding around it on the white background page.

Mondrian Art in CSS From 5 Code Artists originally published on CSS-Tricks. You should get the newsletter and become a supporter.

Categories: Designing, Others Tags:

How to Build Your First Custom Svelte Transition

January 14th, 2022 No comments
An animated example of a custom Svelte transition showing a to do list. An item is typed and animated into the list of items when entered. Clicking a done button animates the item out of view.

The Svelte transition API provides a first-class way to animate your components when they enter or leave the document, including custom Svelte transitions. By default, the transition directive uses CSS animations, which generally offer better performance and allow the browser’s main thread to remain unblocked. The API is as simple as this: . You can also specify in or out directives which are uni-directional transitions, only running when the element is mounted or unmounted.

Example of a working Svelte transition (jump to demo)

Svelte offers a runtime svelte/transition package that ships with seven prepackaged Svelte transition functions, all of which can be dropped in and tweaked to your heart’s desire. Pairing this with the svelte/easing package, allows for a wide swath of interactions, without writing any of the transition code yourself. Play around with different transitions and easing functions to get a feel for what is possible.

Looking for instructions on how to get started with Svelte? We have a solid overview for you to check out.

The Svelte Custom Transition API

If you need even more control than what the Svelte Transition API offers out of the box, Svelte permits you to specify your own custom transition function, as long as you adhere to a few conventions. From the docs, here’s what the custom transition API looks like:

transition = (node: HTMLElement, params: any) => {
  delay?: number,
  duration?: number,
  easing?: (t: number) => number,
  css?: (t: number, u: number) => string,
  tick?: (t: number, u: number) => void
} 

Let’s break it down. A transition function takes a reference to the DOM node where the transition directive is used and returns an object with some parameters that control the animation and, most importantly, a css or tick function.

The css function’s job is to return a string of CSS that describes the animation, typically including some kind of transform or opacity change. Alternatively, you can opt to return a tick function, which lets you control every aspect of the animation with the power JavaScript, but pays a performance penalty since this type of transition does not use CSS animations.

Both the css and tick functions take two parameters called (t, u) by convention. t is a decimal number that travels from 0.00 to 1.00 while the element is entering the DOM and from 1.00 back to 0.00 when the element is leaving. The u parameter is the inverse of t or 1 - t at any given moment. For example, if you return a string of transform: scale(${t}), your element would smoothly animate from 0 to 1 on enter, and vice versa on exit.

These concepts may seem a bit abstract, so let’s solidify them by building our own custom Svelte transition!

Building your first custom Svelte transition

First, let’s set up some boilerplate that allows us to toggle an element’s existence in the DOM using a Svelte #if block. Remember, Svelte transitions only run when an element is actually leaving or entering the DOM.

<script>
  let showing = true
</script>

<label for="showing">
  Showing
</label>
<input id="showing" type="checkbox" bind:checked={showing} />

{#if showing}
  <h1>Hello custom transition!</h1>
{/if}

You should be able to toggle the checkbox and see our element starkly appear and disappear in place.

Next, let’s set up our custom Svelte transition function and get it wired up to our element.

<script>
  let showing = true
  // Custom transition function
  function whoosh(node) {
    console.log(node)
  }
</script>

<label for="showing">
  Showing
</label>
<input id="showing" type="checkbox" bind:checked={showing} />

{#if showing}
  <h1 transition:whoosh>Hello custom transition!</h1>
{/if}

Now, if you toggle the checkbox, you will see the

element logged to the console. This proves we have the custom transition connected properly! We won’t actually use the DOM node in our example, but it’s often useful to have access to the element to reference its current styles or dimensions.

For our element to do any animation at all, we need to return an object that contains a css (or tick) function. Let’s have our css function return a single line of CSS that scales our element. We’ll also return a duration property that controls how long the animation takes.

<script>
  function swoop() {
    return {
      duration: 1000,
      css: () => `transform: scale(.5)`
    }
  }
  let showing = true
</script>

<!-- markup -->

We’ve got something moving! You will notice our element jumps straight to .5 scale when toggling the checkbox. This is something, but it would feel much better if it smoothly transitioned. That’s where the (t, u) parameters come in.

<script>
  function swoop() {
    return {
      duration: 1000,
      css: (t) => `transform: scale(${t})`
    }
  }
  let showing = true
</script>

<!-- markup -->

Now we are talking! Remember, t rolls smoothly from 0.00 to 1.00 when an element enters, and vice versa when it leaves. This allows us to achieve the smooth effect we want. In fact, what we just wrote is essentially the built-in scale transition from the svelte/transition package.

Let’s get a little bit fancier. To live up to our custom Svelte transition’s namesake, swoop, let’s add a translateX to our transform, so that our element zooms in and out from the side.

I want to challenge you to attempt the implementation first before we continue. Trust me, it will be fun! Assume that we want to translate to 100% when the element is leaving and back to 0% when it enters.

[waiting…]

How did it go? Want to compare answers?

Here’s what I got:

css: (t, u) => `transform: scale(${t}) translateX(${u * 100}%);`

It’s okay if you have something different! Let me break down what I did.

The key thing here is the usage of the second parameter in the css function. If we think about our animation while the element is entering the screen, we want to end up at scale(1) translateX(0%), so we can’t use unaltered t for both the scale and the transform. This is the convenience behind the u parameter — it is the inverse of t at any given moment, so we know it will be 0 when t is 1! I then multiplied u by 100 to get the percentage value and tacked on the % sign at the end.

Learning the interplay between t and u is an important piece of the custom transition puzzle in Svelte. These two parameters enable a world of dynamism for your animations; they can be divided, multiplied, twisted, or contorted into whatever needs you have.

Let’s slap my favorite svelte/easing function on our transition and call it a day:

<script>
  import { elasticOut } from 'svelte/easing'
  function swoop() {
    return {
      duration: 1000,
      easing: elasticOut,
      css: (t, u) => `transform: scale(${t}) translateX(${u * 100}%)`
    }
  }
  let showing = true
</script>

<label for="showing">
  Showing
</label>
<input id="showing" type="checkbox" bind:checked={showing} />

{#if showing}
  <h1 transition:swoop>Hello custom transition!</h1>
{/if}

Wrapping up

Congratulations! You can now build a custom Svelte transition function. We have only scratched the surface of what is possible but I hope you feel equipped with the tools to explore even further. I would highly recommend reading the docs and going through the official tutorial to gain even more familiarity.


How to Build Your First Custom Svelte Transition originally published on CSS-Tricks. You should get the newsletter and become a supporter.

Categories: Designing, Others Tags:

6 Low-Code platforms to watch in 2022

January 14th, 2022 No comments

Low-Code platforms are the future of enterprise application development. They provide a much quicker and efficient way to build applications without any coding knowledge. 

Low-Code platforms are quickly transforming the way companies do business. They are not only able to lower the time and cost of software development but also offer a more agile and streamlined process to get applications built and deployed.  

These platforms power the digital transformation of many organizations by providing a vehicle for the rapid development and deployment of web and mobile applications. 

The main benefits of using Low-Code platforms include:  

  • improved collaboration between business users and IT departments 
  • faster time to market for new features 
  • lower development costs and  
  • increased accuracy of digital products. 

We predict that 2022 will be the year for changing up your business and accelerating digital transformation with a Low-Code platform. 

Here are some leading Low-Code platforms that you should watch out for in 2022 and beyond:  

Microsoft Power Apps 

Microsoft PowerApps is a Low-Code platform that helps people quickly create intuitive applications without being a software developer. This platform lets users create custom apps from ready-made templates for various types of devices. 

It’s an easy way to make powerful mobile or web applications without coding skills. These app templates are straightforward to use and come with pre-built features for various business needs without having to hire developers. Microsoft Power Apps helps you develop smartphone apps, tablet apps, web interfaces for all kinds of purposes. This includes both internal and customer-facing apps. 

This solution has many features that help organizations streamline operations, improve customer service, and enhance employees’ productivity.  

Microsoft Power Apps are available on all popular devices and platforms, which makes it simple for anyone to use them. The users can also easily deploy their apps in the cloud or store them on Azure. 

Appian 

Appian is another Low-Code platform for building and delivering business applications. The platform incorporates a visual, drag-and-drop interface, role-based security features, integrated enterprise data access, and built-in logic. 

Appian’s platform allows customers to create interactive mobile apps, customer self-service applications, custom web portals, content management systems (CMS), and others. 

Appian also provides a robust API for connecting your app with other IT systems, enabling you to automate processes across your organization. With Appian’s API Toolbox, it’s easy to upload data from external sources or integrate data from other applications into your application. The Appian software is used by many large enterprises in banking and financial services, telecommunications, healthcare, and government. 

Comidor 

Comidor couldn’t be missing from the list of the best Low-Code platforms to watch in the upcoming year. Comidor Low-Code platform assists businesses in automating their workflows and business processes and developing cutting-edge Low-Code applications. Create your own custom applications with the Low-Code Application Builder or browse the Comidor application marketplace for pre-existing apps that can help you streamline your overall business operations. Anyone in your organization can create and manage custom applications using a user-friendly environment, regardless of coding experience. Drag-and-drop functionality, reusability of pre-built application templates, connection with workflow diagrams, cloud-native architecture, and real-time data analysis are only some of the powerful features Comidor offers to users. 

What’s more, the Comidor platform can handle all your demanding automation and development needs, by incorporating intelligent automation capabilities, like RPA and AI/ML, achieving thus end-to-end automation in one convenient, integrated platform. 

Outsystems 

Outsystems is a platform that helps you quickly create enterprise-grade mobile, web, and desktop software that can be deployed either on devices or on the cloud.  

The platform integrates all aspects of the enterprise in one collaborative environment to help enterprises succeed in this new era of digital business transformation. In essence, it allows business users to design, develop, deploy and manage their apps without any coding skills needed. 

It features a drag & drop user interface, no coding required for developing enterprise applications, visual modeling of processes and data, database connection to any database type. Outsystems also provides a web-based IDE and an API for building, deploying, and managing applications. 

It is used by enterprises in various industries around the world including healthcare, finance, retail, telecommunications, and others. 

Mendix  

Mendix is an all-in-one Low-Code development platform that allows developers and business users to build software applications while collaborating throughout the entire application development lifecycle. This cloud-based platform leverages Artificial Intelligence, integrates with external systems and databases to transfer data, and delivers end-to-end automation. 

Low-Code platforms, which use a visual, model-driven approach, eliminate the need for coding and bridge the gap between the IT and Business departments of an organization. Mendix combines Low-Code and No-Code development, while at the same time, putting a special emphasis on the integrated collaboration, the cloud-native architecture, as well as the intuitive drag-and-drop development that provides users with an engaging visual interface. 

Genexus 

Genexus is a Low-Code software development that automates and makes simpler the creation and evolution of enterprise applications. This agile platform is powered by Artificial Intelligence and combines multiple technologies to offer multi-experience solutions to users. By integrating any application with external and internal systems, the Genexus platform allows continuous information processing. 

The whole Genexus suite includes besides the Low-Code application development environment, collaboration tools, BPM capabilities, to model, automate, and optimize processes and workflows, and finally reporting and analytics. This platform covers a whole spectrum of automation capabilities to simplify software development. 

Sum up  

Businesses are seeking to reduce development costs, increase productivity, and improve team collaboration. Low-Code development platforms offer the benefits of code-free solutions like rapid deployment, no coding skills required, no upfront cost for capital expenditure, and quick time to market. To summarize, it is obvious that Low-Code development platforms are the new wave of the future of software development. Since Low-Code development platforms enable non-technical business analysts to create applications without writing code, so they don’t need programming knowledge at all, we understand why these platforms are a disruptive force in the digital economy. Additionally, the skyrocketing cost of traditional development makes Low-Code platforms become the way forward. Not only do they save time and money, but they also provide more flexibility than ever before.

The post 6 Low-Code platforms to watch in 2022 appeared first on noupe.

Categories: Others Tags:

A Practical Tip For Using Sass Default Parameters

January 13th, 2022 No comments

Sass offers functions and mixins that accept parameters. You can use Sass default parameters, that is, parameters that have a value even if you don’t provide them when the function or mixin is called.

Let’s focus on mixins here. Here’s the syntax of a mixin:

@mixin foo($a, $b, $c) {
  // I can use $a, $b, and $c in here, but there is a risk they are null
}

.el {
  @include foo(1, 2, 3);

  // if I tried to do `@include foo;`
  // ... which is valid syntax... 
  // I'd get `Error: Missing argument $a.` from Sass
}

It’s safer and more useful to set up default parameters in this Sass mixin:

@mixin foo($a: 1, $b: 2, $c: 3) {
}

.el {
  // Now this is fine
  @include foo;

  // AND I can send in params as well
  @include foo("three", "little", "pigs");
}

But what if I wanted to send in $b and $c, but leave $a as the Sass default parameter? The trick is that you send in named parameters:

@mixin foo($a: 1, $b: 2, $c: 3) {
}

.el {
  // Only sending in the second two params, $a will be the default.
  @include foo($b: 2, $c: 3);
}

A real-life example using Sass default parameters

Here’s a quick-y mixin that outputs what you need for very basic styled scrollbars (Kitty has one as well):

@mixin scrollbars(
  $size: 10px,
  $foreground-color: #eee,
  $background-color: #333
) {
  // For Google Chrome
  &::-webkit-scrollbar {
    width: $size;
    height: $size;
  }
  &::-webkit-scrollbar-thumb {
    background: $foreground-color;
  }
  &::-webkit-scrollbar-track {
    background: $background-color;
  }

  // Standard version (Firefox only for now)
  scrollbar-color: $foreground-color $background-color;
}

Now I can call it like this:

.scrollable {
  @include scrollbars;
}

.thick-but-otherwise-default-scrollable {
  // I can skip $b and $c because they are second and third
  @include scrollbars(30px);
}

.custom-colors-scrollable {
  // I can skip the first param if all the others are named.
  @include scrollbars($foreground-color: orange, $background-color: black);
}

.totally-custom-scrollable {
  @include scrollbars(20px, red, black);
}

I’m just noting this as I had to search around a bit to figure this out. I was trying stuff like sending empty strings or null as the first parameter in order to “skip” it, but that doesn’t work. Gotta do the named parameter approach.


A Practical Tip For Using Sass Default Parameters originally published on CSS-Tricks. You should get the newsletter and become a supporter.

Categories: Designing, Others Tags:

test 123

January 13th, 2022 No comments

test 123

The post test 123 appeared first on noupe.

Categories: Others Tags:

Test 3

January 13th, 2022 No comments

Test 3

The post Test 3 appeared first on noupe.

Categories: Others Tags:

Test 2

January 13th, 2022 No comments

Test 2

The post Test 2 appeared first on noupe.

Categories: Others Tags:

Test 1

January 13th, 2022 No comments

Test 1

The post Test 1 appeared first on noupe.

Categories: Others Tags: