Drupal News

Finalist Blog: Dummy content with Migrate

Main Drupal Feed - Wed, 06/01/2022 - 11:42
Credit: photo by enjoiskate8 Dummy content is very useful for testing and other purposes. In this blog post I'll present some of the many tools that Drupal has to create dummy content. I'll explain why I think Migrate is the tool that is most suitable for this task. I have presented about this topic at the at the Drupal Dev Days 2022. and at Drupaljam 2022. What is Dummy content? Dummy content is everything you would like to have available when you start a new website: so that could be pages, users, taxonomy terms. So it is not just nodes, it could also be menu's, paragraphs…

Finalist Blog: Dummy content with Migrate

Main Drupal Feed - Wed, 06/01/2022 - 11:42
Credit: photo by enjoiskate8 Dummy content is very useful for testing and other purposes. In this blog post I'll present some of the many tools that Drupal has to create dummy content. I'll explain why I think Migrate is the tool that is most suitable for this task. I have presented about this topic at the at the Drupal Dev Days 2022. and at Drupaljam 2022. What is Dummy content? Dummy content is everything you would like to have available when you start a new website: so that could be pages, users, taxonomy terms. So it is not just nodes, it could also be menu's, paragraphs…

mark.ie: Creating a Colour-picker field for Drupal

Main Drupal Feed - Wed, 06/01/2022 - 09:00

Demo/tutorial on how to create a color-picker field for a Drupal website.

mark.ie: Creating a Colour-picker field for Drupal

Main Drupal Feed - Wed, 06/01/2022 - 09:00

Demo/tutorial on how to create a color-picker field for a Drupal website.

OpenSense Labs: How to implement component based design systems

Main Drupal Feed - Wed, 06/01/2022 - 04:59
How to implement component based design systems Gurpreet Kaur Wed, 06/01/2022 - 10:29

When you think about building a robust website or application, you think of two important sets of people who make it possible, that is designers and developers. Both of them are responsible for creating user-friendly experiences, but they do it differently. 

The job description of designers and that of developers are not the same, not by any means. In simple terms, one of them designs and the other one executes it through code.

They are not synonymous with each other. 

Can their work become synonymous?
Can it be interchangeable? 
Can one perform the job of the other?

Yes, that is possible. And the answer is through component-based design systems, where designers don’t have to be dependent on developers to create new landing pages as they already have components to work with.

How does the component based design approach work?

Design systems are the new way of creating web designs and products through a shared medium between designers and developers. Using ready-made components that act as building blocks for the entire site, websites and applications can be envisioned to be more modular with reusable elements. 

Component-based design systems have brought with them a transition in the creation of digital products that are composed, arranged and assembled in any way you want or as many ways you want them to be.

These components will also include what your page wants to portray. It could be a text block, a contact form, a CTA button, an entire banner of photographs. Content or graphics, the choice is yours.

Now coming to the initial question I asked and answering it.

As the components are already programmed segments of a page, it becomes extremely easy for the designers to get an understanding of delivering a smooth user experience all by themselves. They get the things that’ll work and build the final product with clear rationale that the design requires.

Component based design systems have the ability to create consistent designs that align with the brand. They not just empower designers, but also pave the way for more scalable products. More on component based design systems here.

The Beneficial Saga of Component based Design

Like I said, component based design is bringing more to the world of digital designs. Let’s get a better understanding of what more entails.

Brings Consistency

Redundancy in designs;
Hard to track changes; 
Outdated styles;
Forgotten functionalities; 

All of these are problems faced by designers, developers and content editors when they are to maintain consistency in the brand voice across the website. 

What if brand identity and style guides are ingrained into each component of each page? Wouldn’t it drastically improve consistency everywhere? In each style, each function, each design and the entire brand?

It certainly would. 

Component based design systems do just that. They make room for intentional and pre-designed structures and processes that ensure the correct components are used. They act as references for styles and functions that go across the site. Thus, bringing consistency, irrespective of how many designers or developers are involved in the build.

Simplifies Management 

A component based website will be solely composed of components, meaning each segment on that site is a component and the possibility of it having been reused is high. 

So, when you maintain your website, you are essentially maintaining those individual components. 

You can manage changes by making miniscule edits or drastic upgrades to the designs. And you can do all of that using a single source file of the same components. The fact that each component has multiple use cases on multiple pages, a single change, irrespective of how big or small it is, would be made to the entire application. 

Enables Efficiency and Scalability

When building a design system, you have to know that you would be working with existing components in the future. Every component, when built, has a long shelf life because it along with its variations are going to be reused.

This fact about component based designs makes them efficient. Why?

Because developers would not need to reimplement a change in the future. The design system is always going to be broader than its current implementation. Its evaluation and build is what makes it concise to the application. 

Considering this, component based design systems also promote scalability. 

You can very easily extend existing components or simply assemble new segments. Working with a system that is extremely well defined makes scaling convenient as you can build on top of it. 

Another way to understand this is that you will have a component library that would keep growing with your site. These clearly comprehensible, reusable and flexible components will make your platform’s expansion convenient.

Elevates Modularity 

Each component in a design system is always going to be built from scratch. 

This eases the development process because every component can have variations built-in. They are not going to simply be adorned on a single page and become obsolete for anywhere else.

Components, by their nature, are more adaptable and less rigid, if at all. They can be used for any content area, be it a specific campaign or permanent display. With these, you can test iterations of your layout on the fly, all the while maintaining consistency of the brand voice.

Promotes Cross-functional Collaboration 

Component based design systems have become the epitome of collaboration. Based on what I have written so far, it’s pretty obvious.

Your organisation wouldn’t have operational silos, if you have design systems in place. Content, design and development can work together and that too cohesively. The approach of design systems towards design and execution makes it possible as it becomes unified. 

Breaking Apart the Design System 

The next phase of design systems is to understand what is encompassed by them. Of course, there are going to be the design principles. That's a given because consistency does need a set of rules. 

These principles are exactly, rules and values that help design teams take their designs forward. They could be something as simple as;

Making the user experience easy; 
Focusing on telling stories; 
Building a multi-device layout.

There are no standard sets of design principles that go with these systems. It’s your brand that would decipher them based on its needs.

Now, let’s come down to the more specific part.

Style Guide 

Colours; 
Typography; 
Logos; 
Tone of voice;
And specific front-end styles;

All of these sum up a style guide. They also differentiate a brand, give it an identity and set it apart from its counterparts. 

Style guides achieve the same through setting guidelines for branding, content and interactive elements on the site. The design deliverables become consistent because of style guides and the specific implementation methodology they set.

They can also come as part of a component library so that each element therein has relevant guidance and context to take forth.

Component Library 

You can call it a component library or you can call it a design library, whatever you do it’ll always be a designer and developer’s shop.

Component libraries enable the development and design team to comprehend and implement UI elements easily. They are thorough because every component that has been developed for the system would be in them with predetermined and reusable functionality. 

It’s obvious that a component library would include the visual illustrations of every single component. What is not obvious is that it is much more organised and comprehensive than that. 

  • Component name with uniqueness for each component; 
  • Description with a concise explanation of the components and their usage; 
  • Attributes for future customisations with the range of variable and adjustments that can be made;
  • Component state to recommend default changes;
  • Code excerpts of each component;
  • And finally, the frontend and backend frameworks for library implementation. 

A component library is quite diverse and versatile to that that it can also help developers avoid painful and redundant debugging.

Pattern Library 

Content structures; 
Layouts; 
Design templates; 

These are the gist of a pattern library, which is different from a component library as we discussed in the previous sub-heading. So, the common misconception that both of them are the same needs to be forgotten.

Instead of individual UI components of a component library, a pattern library boasts collections of element groups and layouts. Apart from that they are similar, in the sense that both of them are robust and can be adapted and reused for their components and patterns. More on the implementation of pattern libraries here.

Assembly of a Design System 

Based on the previous section, you must have gotten a basic understanding of how a component based design system is assembled. 

You would need to build;

A style guide; 
A component library;
And a pattern library for your system.

So, when we talk about the assembly, we’ll not be discussing these, but the bigger picture that transcends the individual builds.

Here it is.

Assess the current visual state 

As in any development process, you ought to begin with an assessment of the current state of affairs. In this case, it is the visual design and you need to audit it thoroughly. 

What you need to do is;

  • Analyse your product to have a review on all its front-end design components;
  • Create a catalogue of the components that you would be keeping;
  • Identify the inconsistencies in design and remember to overcome them later;
  • And be mindful of the CSS used along with the visual qualities of the components.

Once you have done that, you are ready for the next step.

Evaluate the build time 

Knowing what you are going to build doesn’t necessarily mean that you start building it. There are a lot of other parameters that you have to think ahead of the build. 

So, ask yourself;

What are the places a component is going to be used?
Will there be a difference between the same component used in two different places?
What are the kinds of functionalities a component will have?
Would two more components be interlinked or dependent for functionality?

Once you have an answer to these questions, you will have a better understanding of the build time per-component. This also helps in avoiding rewrites and wastage of time and resources because you are simply not focusing on the visuals. 

What’s more is you would have an overview of the kind of complexity and features all the components will offer, both combined and individually. Understand that design systems are not a repository, they are much more than that. So use them in a way that you get the best from them.

Define priority elements 

What are the components that are the most important?
What are the components that are needed first?
What are the components that will give a foundation for other components?

These questions help you define priorities of each component build and let you apply them throughout the development process.

There are a couple of ways you can go about building your design systems.

  • The first one is to develop the fundamental components first. By fundamental, I mean the most basic components. These could be buttons, colours, icons or even headings. Once that is out of the way, you can start working on more complex components.
  • The alternative approach could be building global elements first. These could be navigation and page layouts. This is advised because once a page layout is set, you have done the groundwork and the only thing left is to build up then.

After deciding on the first elements to build, the rest can be worked out using the Eisenhower Box principle. This tells us to prioritise on the basis of importance and the kind of urgency a component has. Evaluating it would somewhat depend on the features the said component is bringing to the table.

Adhere to documentation 

The development process of a design system involves a lot of steps and a lot of people to accomplish those steps. Thinking merely designers can build an entire design system is completely irrational.

Designers 
Developers
Content Editors 

Each person has a significant role to play. Considering developers, there are frontend and backend developers, who have entirely separate responsibilities. 

So, when you are planning the development of a design system, you need to think about the relationship between all the players involved in the build and how to make it effective, think about how the handoffs would happen and think about how you would divide responsibilities. 

The answer to all of these would be clear and concise documentation. Documenting and standardising have helped design systems remain as efficient as they boast to be. 

Special Mention for Brad Frost’s Atomic Design 

When component based design is mentioned, our mind definitely wanders off to Atomic Design, a concept of design system proposed by Brad Frost.

Brad conceptualised his methodology based on the principles of chemistry. It may sound strange, but it is very effective.

Let’s figure it out. 

As we know that everything that is matter is composed of atoms, which bond together to form molecules that combine to become organisms. And organisms are what make the universe. 

Taking the same concept to web design, the complete UI is broken down into fundamental pieces and they are then built back up. 

Creating design systems with atomic design has five levels.

Source: Brad Frost 
  • Atoms that encompass HTML tags, like form labels and buttons;
  • Molecules that are bonded atoms, like a form label and button together;
  • Organisms that are grouped molecules to form a complex and distinct section on a layout like a product grid;
  • Templates that are formed by organisms and make a page layout possible. 
  • Pages that are the culmination of the previous for and test the effectiveness of the work done thus far.

Atomic designs are clear in their methodology and enable teams to see their envisioned goal in better detail. They boast consistency and scalability and are the paradigm of component based design systems today. Read this guide on atomic design methodology to know more.

Easing Component-based Designs 

You know almost everything about design systems now, what you need to know now is what design systems you can leverage to ease the build of component based designs on your own. 

Yes, there is always the option of creating your own design systems, and many brands, Atlassian being one name, have conceptualised their own systems. However, for smaller brands and organisations, who do not have the resources to go on their own, there are plenty of options in the market. 

Here are the top five picks for you.

Storybook 

Storybook, an open source tool meant to design and develop UI components, personifies ease in the creation of a component based design. 

  • You can preview components as you build them;
  • You can inspect individual components once you have built them;
  • You can look and analyse the different states the built components would function in;
  • And you can also import components into Storybook.

With support from a dozen JavaScript libraries and plain HTML, Storybook is easy to use and amplifies the build process.

Source: Storybook
Pattern Lab 

Build, view, test and demonstrate your UI components rapidly with Pattern Lab. It allows you to prototype at massive speed with interactivity, instead of simply providing flat designs. 

With cross-browser and multi-device testing, Pattern Lab helps to efficiently implement modification with minimal to no involvement in the code base. 

A node-powered static site generator, it can deliver everything you would need for setting up your component based UI;

  • Nested patterns 
  • Designs empowered with dynamic data 
  • Atomic design language 
  • Starter Kits (refer image below) and more 

Pattern Lab is faster, achieves a greater degree of consistency and gives you the real value for your money.

Source: Pattern Lab
Material Design 

Android;
iOS;
Or the web; 

Material Design by Google is the design system that always creates high-quality digital experiences everywhere.

It tries to keep things simple, clear and concise for everyone to follow. With three main parts at its core, Principles, Components and Theming, it helps design teams get a better grip on understanding building and customising designs. 

Source: Material Design
Atlassian Design System 

Referred to as the end-to-end design language, the Atlassian Design System helps in creating simple, intuitive and functional digital experiences

Its USP is being a holistic design system that provides the design team everything they need, from components to pattern libraries and comprehensive insights on the brand itself, its stylistic foundations and even content. 

Source: Atlassian Design 
Bit 

Another open-source design tool, Bit drives component based development that are founded on composable software to create consistent and reusable platforms. 

  • It promotes autonomy and standards with distributed code and teams;
  • It facilitates cross team collaboration to scale;
  • It also enables a composable that scales with the platforms and never repeats itself.

In simple terms, Bit makes component based development easy, distributed, consistent, reusable and efficiently manageable. 

Source: Bit.dev
OpenSense Labs Connection with Component-based Designs 

OpenSense Labs has a long history with component based designs. We love working with components and they have served us well so far, enabling us to create some of our best work.

Here is a component based design tale for you.

Edredo: Our very own edtech platform

Last year, Edredo was rebranded from Techtud. The rebranding meant an overhaul of the design on the entire site and application. It would have been a massive undertaking had it not been for component based design. 

Edredo, previously Techtud, was partly built on the concept of component based design. This helped our design team, led by Sahil Sharma, to drive changes and make them more consistent. 

Making changes to global elements was a walk in the park. A modification in universal headers just meant changing the parent component and designs became consistent as a result. 

We could simply design a header and present that component’s design for approval before coding. Once the component’s design is approved, it was coded and design work on the next component began. 

This process was repeated until all the pieces were finished and “pages” could be assembled. It was especially useful when a different designer took over designing, followed by a different developer doing the coding of the component, as they can work in tandem for high efficiency. 

“As a designer, I personally feel that component based designing has improved consistency in design tremendously. Smallest changes like colour or font can be updated on the entire product across devices within seconds. It has made design more flexible for all future updates.” - Sahil Sharma, UI/UX Designer, OpenSense Labs 
The Final Word   “Component based development increases code reusability, reduces time duration and budget for the project and it is much easier to implement globally.” - Pritish Kumar, Technical Lead, OpenSense Labs 

Reusability of design matters today, component based design systems make that possible. Breaking down components into smaller chunks, building from there is far more efficient than traditional design methodology. So, component based designs are for the win, for developers, for designers and for content editors too.

Articles Off

OpenSense Labs: How to implement component based design systems

Main Drupal Feed - Wed, 06/01/2022 - 04:59
How to implement component based design systems Gurpreet Kaur Wed, 06/01/2022 - 10:29

When you think about building a robust website or application, you think of two important sets of people who make it possible, that is designers and developers. Both of them are responsible for creating user-friendly experiences, but they do it differently. 

The job description of designers and that of developers are not the same, not by any means. In simple terms, one of them designs and the other one executes it through code.

They are not synonymous with each other. 

Can their work become synonymous?
Can it be interchangeable? 
Can one perform the job of the other?

Yes, that is possible. And the answer is through component-based design systems, where designers don’t have to be dependent on developers to create new landing pages as they already have components to work with.

How does the component based design approach work?

Design systems are the new way of creating web designs and products through a shared medium between designers and developers. Using ready-made components that act as building blocks for the entire site, websites and applications can be envisioned to be more modular with reusable elements. 

Component-based design systems have brought with them a transition in the creation of digital products that are composed, arranged and assembled in any way you want or as many ways you want them to be.

These components will also include what your page wants to portray. It could be a text block, a contact form, a CTA button, an entire banner of photographs. Content or graphics, the choice is yours.

Now coming to the initial question I asked and answering it.

As the components are already programmed segments of a page, it becomes extremely easy for the designers to get an understanding of delivering a smooth user experience all by themselves. They get the things that’ll work and build the final product with clear rationale that the design requires.

Component based design systems have the ability to create consistent designs that align with the brand. They not just empower designers, but also pave the way for more scalable products. More on component based design systems here.

The Beneficial Saga of Component based Design

Like I said, component based design is bringing more to the world of digital designs. Let’s get a better understanding of what more entails.

Brings Consistency

Redundancy in designs;
Hard to track changes; 
Outdated styles;
Forgotten functionalities; 

All of these are problems faced by designers, developers and content editors when they are to maintain consistency in the brand voice across the website. 

What if brand identity and style guides are ingrained into each component of each page? Wouldn’t it drastically improve consistency everywhere? In each style, each function, each design and the entire brand?

It certainly would. 

Component based design systems do just that. They make room for intentional and pre-designed structures and processes that ensure the correct components are used. They act as references for styles and functions that go across the site. Thus, bringing consistency, irrespective of how many designers or developers are involved in the build.

Simplifies Management 

A component based website will be solely composed of components, meaning each segment on that site is a component and the possibility of it having been reused is high. 

So, when you maintain your website, you are essentially maintaining those individual components. 

You can manage changes by making miniscule edits or drastic upgrades to the designs. And you can do all of that using a single source file of the same components. The fact that each component has multiple use cases on multiple pages, a single change, irrespective of how big or small it is, would be made to the entire application. 

Enables Efficiency and Scalability

When building a design system, you have to know that you would be working with existing components in the future. Every component, when built, has a long shelf life because it along with its variations are going to be reused.

This fact about component based designs makes them efficient. Why?

Because developers would not need to reimplement a change in the future. The design system is always going to be broader than its current implementation. Its evaluation and build is what makes it concise to the application. 

Considering this, component based design systems also promote scalability. 

You can very easily extend existing components or simply assemble new segments. Working with a system that is extremely well defined makes scaling convenient as you can build on top of it. 

Another way to understand this is that you will have a component library that would keep growing with your site. These clearly comprehensible, reusable and flexible components will make your platform’s expansion convenient.

Elevates Modularity 

Each component in a design system is always going to be built from scratch. 

This eases the development process because every component can have variations built-in. They are not going to simply be adorned on a single page and become obsolete for anywhere else.

Components, by their nature, are more adaptable and less rigid, if at all. They can be used for any content area, be it a specific campaign or permanent display. With these, you can test iterations of your layout on the fly, all the while maintaining consistency of the brand voice.

Promotes Cross-functional Collaboration 

Component based design systems have become the epitome of collaboration. Based on what I have written so far, it’s pretty obvious.

Your organisation wouldn’t have operational silos, if you have design systems in place. Content, design and development can work together and that too cohesively. The approach of design systems towards design and execution makes it possible as it becomes unified. 

Breaking Apart the Design System 

The next phase of design systems is to understand what is encompassed by them. Of course, there are going to be the design principles. That's a given because consistency does need a set of rules. 

These principles are exactly, rules and values that help design teams take their designs forward. They could be something as simple as;

Making the user experience easy; 
Focusing on telling stories; 
Building a multi-device layout.

There are no standard sets of design principles that go with these systems. It’s your brand that would decipher them based on its needs.

Now, let’s come down to the more specific part.

Style Guide 

Colours; 
Typography; 
Logos; 
Tone of voice;
And specific front-end styles;

All of these sum up a style guide. They also differentiate a brand, give it an identity and set it apart from its counterparts. 

Style guides achieve the same through setting guidelines for branding, content and interactive elements on the site. The design deliverables become consistent because of style guides and the specific implementation methodology they set.

They can also come as part of a component library so that each element therein has relevant guidance and context to take forth.

Component Library 

You can call it a component library or you can call it a design library, whatever you do it’ll always be a designer and developer’s shop.

Component libraries enable the development and design team to comprehend and implement UI elements easily. They are thorough because every component that has been developed for the system would be in them with predetermined and reusable functionality. 

It’s obvious that a component library would include the visual illustrations of every single component. What is not obvious is that it is much more organised and comprehensive than that. 

  • Component name with uniqueness for each component; 
  • Description with a concise explanation of the components and their usage; 
  • Attributes for future customisations with the range of variable and adjustments that can be made;
  • Component state to recommend default changes;
  • Code excerpts of each component;
  • And finally, the frontend and backend frameworks for library implementation. 

A component library is quite diverse and versatile to that that it can also help developers avoid painful and redundant debugging.

Pattern Library 

Content structures; 
Layouts; 
Design templates; 

These are the gist of a pattern library, which is different from a component library as we discussed in the previous sub-heading. So, the common misconception that both of them are the same needs to be forgotten.

Instead of individual UI components of a component library, a pattern library boasts collections of element groups and layouts. Apart from that they are similar, in the sense that both of them are robust and can be adapted and reused for their components and patterns. More on the implementation of pattern libraries here.

Assembly of a Design System 

Based on the previous section, you must have gotten a basic understanding of how a component based design system is assembled. 

You would need to build;

A style guide; 
A component library;
And a pattern library for your system.

So, when we talk about the assembly, we’ll not be discussing these, but the bigger picture that transcends the individual builds.

Here it is.

Assess the current visual state 

As in any development process, you ought to begin with an assessment of the current state of affairs. In this case, it is the visual design and you need to audit it thoroughly. 

What you need to do is;

  • Analyse your product to have a review on all its front-end design components;
  • Create a catalogue of the components that you would be keeping;
  • Identify the inconsistencies in design and remember to overcome them later;
  • And be mindful of the CSS used along with the visual qualities of the components.

Once you have done that, you are ready for the next step.

Evaluate the build time 

Knowing what you are going to build doesn’t necessarily mean that you start building it. There are a lot of other parameters that you have to think ahead of the build. 

So, ask yourself;

What are the places a component is going to be used?
Will there be a difference between the same component used in two different places?
What are the kinds of functionalities a component will have?
Would two more components be interlinked or dependent for functionality?

Once you have an answer to these questions, you will have a better understanding of the build time per-component. This also helps in avoiding rewrites and wastage of time and resources because you are simply not focusing on the visuals. 

What’s more is you would have an overview of the kind of complexity and features all the components will offer, both combined and individually. Understand that design systems are not a repository, they are much more than that. So use them in a way that you get the best from them.

Define priority elements 

What are the components that are the most important?
What are the components that are needed first?
What are the components that will give a foundation for other components?

These questions help you define priorities of each component build and let you apply them throughout the development process.

There are a couple of ways you can go about building your design systems.

  • The first one is to develop the fundamental components first. By fundamental, I mean the most basic components. These could be buttons, colours, icons or even headings. Once that is out of the way, you can start working on more complex components.
  • The alternative approach could be building global elements first. These could be navigation and page layouts. This is advised because once a page layout is set, you have done the groundwork and the only thing left is to build up then.

After deciding on the first elements to build, the rest can be worked out using the Eisenhower Box principle. This tells us to prioritise on the basis of importance and the kind of urgency a component has. Evaluating it would somewhat depend on the features the said component is bringing to the table.

Adhere to documentation 

The development process of a design system involves a lot of steps and a lot of people to accomplish those steps. Thinking merely designers can build an entire design system is completely irrational.

Designers 
Developers
Content Editors 

Each person has a significant role to play. Considering developers, there are frontend and backend developers, who have entirely separate responsibilities. 

So, when you are planning the development of a design system, you need to think about the relationship between all the players involved in the build and how to make it effective, think about how the handoffs would happen and think about how you would divide responsibilities. 

The answer to all of these would be clear and concise documentation. Documenting and standardising have helped design systems remain as efficient as they boast to be. 

Special Mention for Brad Frost’s Atomic Design 

When component based design is mentioned, our mind definitely wanders off to Atomic Design, a concept of design system proposed by Brad Frost.

Brad conceptualised his methodology based on the principles of chemistry. It may sound strange, but it is very effective.

Let’s figure it out. 

As we know that everything that is matter is composed of atoms, which bond together to form molecules that combine to become organisms. And organisms are what make the universe. 

Taking the same concept to web design, the complete UI is broken down into fundamental pieces and they are then built back up. 

Creating design systems with atomic design has five levels.

Source: Brad Frost 
  • Atoms that encompass HTML tags, like form labels and buttons;
  • Molecules that are bonded atoms, like a form label and button together;
  • Organisms that are grouped molecules to form a complex and distinct section on a layout like a product grid;
  • Templates that are formed by organisms and make a page layout possible. 
  • Pages that are the culmination of the previous for and test the effectiveness of the work done thus far.

Atomic designs are clear in their methodology and enable teams to see their envisioned goal in better detail. They boast consistency and scalability and are the paradigm of component based design systems today. Read this guide on atomic design methodology to know more.

Easing Component-based Designs 

You know almost everything about design systems now, what you need to know now is what design systems you can leverage to ease the build of component based designs on your own. 

Yes, there is always the option of creating your own design systems, and many brands, Atlassian being one name, have conceptualised their own systems. However, for smaller brands and organisations, who do not have the resources to go on their own, there are plenty of options in the market. 

Here are the top five picks for you.

Storybook 

Storybook, an open source tool meant to design and develop UI components, personifies ease in the creation of a component based design. 

  • You can preview components as you build them;
  • You can inspect individual components once you have built them;
  • You can look and analyse the different states the built components would function in;
  • And you can also import components into Storybook.

With support from a dozen JavaScript libraries and plain HTML, Storybook is easy to use and amplifies the build process.

Source: Storybook
Pattern Lab 

Build, view, test and demonstrate your UI components rapidly with Pattern Lab. It allows you to prototype at massive speed with interactivity, instead of simply providing flat designs. 

With cross-browser and multi-device testing, Pattern Lab helps to efficiently implement modification with minimal to no involvement in the code base. 

A node-powered static site generator, it can deliver everything you would need for setting up your component based UI;

  • Nested patterns 
  • Designs empowered with dynamic data 
  • Atomic design language 
  • Starter Kits (refer image below) and more 

Pattern Lab is faster, achieves a greater degree of consistency and gives you the real value for your money.

Source: Pattern Lab
Material Design 

Android;
iOS;
Or the web; 

Material Design by Google is the design system that always creates high-quality digital experiences everywhere.

It tries to keep things simple, clear and concise for everyone to follow. With three main parts at its core, Principles, Components and Theming, it helps design teams get a better grip on understanding building and customising designs. 

Source: Material Design
Atlassian Design System 

Referred to as the end-to-end design language, the Atlassian Design System helps in creating simple, intuitive and functional digital experiences

Its USP is being a holistic design system that provides the design team everything they need, from components to pattern libraries and comprehensive insights on the brand itself, its stylistic foundations and even content. 

Source: Atlassian Design 
Bit 

Another open-source design tool, Bit drives component based development that are founded on composable software to create consistent and reusable platforms. 

  • It promotes autonomy and standards with distributed code and teams;
  • It facilitates cross team collaboration to scale;
  • It also enables a composable that scales with the platforms and never repeats itself.

In simple terms, Bit makes component based development easy, distributed, consistent, reusable and efficiently manageable. 

Source: Bit.dev
OpenSense Labs Connection with Component-based Designs 

OpenSense Labs has a long history with component based designs. We love working with components and they have served us well so far, enabling us to create some of our best work.

Here is a component based design tale for you.

Edredo: Our very own edtech platform

Last year, Edredo was rebranded from Techtud. The rebranding meant an overhaul of the design on the entire site and application. It would have been a massive undertaking had it not been for component based design. 

Edredo, previously Techtud, was partly built on the concept of component based design. This helped our design team, led by Sahil Sharma, to drive changes and make them more consistent. 

Making changes to global elements was a walk in the park. A modification in universal headers just meant changing the parent component and designs became consistent as a result. 

We could simply design a header and present that component’s design for approval before coding. Once the component’s design is approved, it was coded and design work on the next component began. 

This process was repeated until all the pieces were finished and “pages” could be assembled. It was especially useful when a different designer took over designing, followed by a different developer doing the coding of the component, as they can work in tandem for high efficiency. 

“As a designer, I personally feel that component based designing has improved consistency in design tremendously. Smallest changes like colour or font can be updated on the entire product across devices within seconds. It has made design more flexible for all future updates.” - Sahil Sharma, UI/UX Designer, OpenSense Labs 
The Final Word   “Component based development increases code reusability, reduces time duration and budget for the project and it is much easier to implement globally.” - Pritish Kumar, Technical Lead, OpenSense Labs 

Reusability of design matters today, component based design systems make that possible. Breaking down components into smaller chunks, building from there is far more efficient than traditional design methodology. So, component based designs are for the win, for developers, for designers and for content editors too.

Articles Off

OpenSense Labs: How to implement component based design systems

Main Drupal Feed - Wed, 06/01/2022 - 04:59
How to implement component based design systems Gurpreet Kaur Wed, 06/01/2022 - 10:29

When you think about building a robust website or application, you think of two important sets of people who make it possible, that is designers and developers. Both of them are responsible for creating user-friendly experiences, but they do it differently. 

The job description of designers and that of developers are not the same, not by any means. In simple terms, one of them designs and the other one executes it through code.

They are not synonymous with each other. 

Can their work become synonymous?
Can it be interchangeable? 
Can one perform the job of the other?

Yes, that is possible. And the answer is through component-based design systems, where designers don’t have to be dependent on developers to create new landing pages as they already have components to work with.

How does the component based design approach work?

Design systems are the new way of creating web designs and products through a shared medium between designers and developers. Using ready-made components that act as building blocks for the entire site, websites and applications can be envisioned to be more modular with reusable elements. 

Component-based design systems have brought with them a transition in the creation of digital products that are composed, arranged and assembled in any way you want or as many ways you want them to be.

These components will also include what your page wants to portray. It could be a text block, a contact form, a CTA button, an entire banner of photographs. Content or graphics, the choice is yours.

Now coming to the initial question I asked and answering it.

As the components are already programmed segments of a page, it becomes extremely easy for the designers to get an understanding of delivering a smooth user experience all by themselves. They get the things that’ll work and build the final product with clear rationale that the design requires.

Component based design systems have the ability to create consistent designs that align with the brand. They not just empower designers, but also pave the way for more scalable products. More on component based design systems here.

The Beneficial Saga of Component based Design

Like I said, component based design is bringing more to the world of digital designs. Let’s get a better understanding of what more entails.

Brings Consistency

Redundancy in designs;
Hard to track changes; 
Outdated styles;
Forgotten functionalities; 

All of these are problems faced by designers, developers and content editors when they are to maintain consistency in the brand voice across the website. 

What if brand identity and style guides are ingrained into each component of each page? Wouldn’t it drastically improve consistency everywhere? In each style, each function, each design and the entire brand?

It certainly would. 

Component based design systems do just that. They make room for intentional and pre-designed structures and processes that ensure the correct components are used. They act as references for styles and functions that go across the site. Thus, bringing consistency, irrespective of how many designers or developers are involved in the build.

Simplifies Management 

A component based website will be solely composed of components, meaning each segment on that site is a component and the possibility of it having been reused is high. 

So, when you maintain your website, you are essentially maintaining those individual components. 

You can manage changes by making miniscule edits or drastic upgrades to the designs. And you can do all of that using a single source file of the same components. The fact that each component has multiple use cases on multiple pages, a single change, irrespective of how big or small it is, would be made to the entire application. 

Enables Efficiency and Scalability

When building a design system, you have to know that you would be working with existing components in the future. Every component, when built, has a long shelf life because it along with its variations are going to be reused.

This fact about component based designs makes them efficient. Why?

Because developers would not need to reimplement a change in the future. The design system is always going to be broader than its current implementation. Its evaluation and build is what makes it concise to the application. 

Considering this, component based design systems also promote scalability. 

You can very easily extend existing components or simply assemble new segments. Working with a system that is extremely well defined makes scaling convenient as you can build on top of it. 

Another way to understand this is that you will have a component library that would keep growing with your site. These clearly comprehensible, reusable and flexible components will make your platform’s expansion convenient.

Elevates Modularity 

Each component in a design system is always going to be built from scratch. 

This eases the development process because every component can have variations built-in. They are not going to simply be adorned on a single page and become obsolete for anywhere else.

Components, by their nature, are more adaptable and less rigid, if at all. They can be used for any content area, be it a specific campaign or permanent display. With these, you can test iterations of your layout on the fly, all the while maintaining consistency of the brand voice.

Promotes Cross-functional Collaboration 

Component based design systems have become the epitome of collaboration. Based on what I have written so far, it’s pretty obvious.

Your organisation wouldn’t have operational silos, if you have design systems in place. Content, design and development can work together and that too cohesively. The approach of design systems towards design and execution makes it possible as it becomes unified. 

Breaking Apart the Design System 

The next phase of design systems is to understand what is encompassed by them. Of course, there are going to be the design principles. That's a given because consistency does need a set of rules. 

These principles are exactly, rules and values that help design teams take their designs forward. They could be something as simple as;

Making the user experience easy; 
Focusing on telling stories; 
Building a multi-device layout.

There are no standard sets of design principles that go with these systems. It’s your brand that would decipher them based on its needs.

Now, let’s come down to the more specific part.

Style Guide 

Colours; 
Typography; 
Logos; 
Tone of voice;
And specific front-end styles;

All of these sum up a style guide. They also differentiate a brand, give it an identity and set it apart from its counterparts. 

Style guides achieve the same through setting guidelines for branding, content and interactive elements on the site. The design deliverables become consistent because of style guides and the specific implementation methodology they set.

They can also come as part of a component library so that each element therein has relevant guidance and context to take forth.

Component Library 

You can call it a component library or you can call it a design library, whatever you do it’ll always be a designer and developer’s shop.

Component libraries enable the development and design team to comprehend and implement UI elements easily. They are thorough because every component that has been developed for the system would be in them with predetermined and reusable functionality. 

It’s obvious that a component library would include the visual illustrations of every single component. What is not obvious is that it is much more organised and comprehensive than that. 

  • Component name with uniqueness for each component; 
  • Description with a concise explanation of the components and their usage; 
  • Attributes for future customisations with the range of variable and adjustments that can be made;
  • Component state to recommend default changes;
  • Code excerpts of each component;
  • And finally, the frontend and backend frameworks for library implementation. 

A component library is quite diverse and versatile to that that it can also help developers avoid painful and redundant debugging.

Pattern Library 

Content structures; 
Layouts; 
Design templates; 

These are the gist of a pattern library, which is different from a component library as we discussed in the previous sub-heading. So, the common misconception that both of them are the same needs to be forgotten.

Instead of individual UI components of a component library, a pattern library boasts collections of element groups and layouts. Apart from that they are similar, in the sense that both of them are robust and can be adapted and reused for their components and patterns. More on the implementation of pattern libraries here.

Assembly of a Design System 

Based on the previous section, you must have gotten a basic understanding of how a component based design system is assembled. 

You would need to build;

A style guide; 
A component library;
And a pattern library for your system.

So, when we talk about the assembly, we’ll not be discussing these, but the bigger picture that transcends the individual builds.

Here it is.

Assess the current visual state 

As in any development process, you ought to begin with an assessment of the current state of affairs. In this case, it is the visual design and you need to audit it thoroughly. 

What you need to do is;

  • Analyse your product to have a review on all its front-end design components;
  • Create a catalogue of the components that you would be keeping;
  • Identify the inconsistencies in design and remember to overcome them later;
  • And be mindful of the CSS used along with the visual qualities of the components.

Once you have done that, you are ready for the next step.

Evaluate the build time 

Knowing what you are going to build doesn’t necessarily mean that you start building it. There are a lot of other parameters that you have to think ahead of the build. 

So, ask yourself;

What are the places a component is going to be used?
Will there be a difference between the same component used in two different places?
What are the kinds of functionalities a component will have?
Would two more components be interlinked or dependent for functionality?

Once you have an answer to these questions, you will have a better understanding of the build time per-component. This also helps in avoiding rewrites and wastage of time and resources because you are simply not focusing on the visuals. 

What’s more is you would have an overview of the kind of complexity and features all the components will offer, both combined and individually. Understand that design systems are not a repository, they are much more than that. So use them in a way that you get the best from them.

Define priority elements 

What are the components that are the most important?
What are the components that are needed first?
What are the components that will give a foundation for other components?

These questions help you define priorities of each component build and let you apply them throughout the development process.

There are a couple of ways you can go about building your design systems.

  • The first one is to develop the fundamental components first. By fundamental, I mean the most basic components. These could be buttons, colours, icons or even headings. Once that is out of the way, you can start working on more complex components.
  • The alternative approach could be building global elements first. These could be navigation and page layouts. This is advised because once a page layout is set, you have done the groundwork and the only thing left is to build up then.

After deciding on the first elements to build, the rest can be worked out using the Eisenhower Box principle. This tells us to prioritise on the basis of importance and the kind of urgency a component has. Evaluating it would somewhat depend on the features the said component is bringing to the table.

Adhere to documentation 

The development process of a design system involves a lot of steps and a lot of people to accomplish those steps. Thinking merely designers can build an entire design system is completely irrational.

Designers 
Developers
Content Editors 

Each person has a significant role to play. Considering developers, there are frontend and backend developers, who have entirely separate responsibilities. 

So, when you are planning the development of a design system, you need to think about the relationship between all the players involved in the build and how to make it effective, think about how the handoffs would happen and think about how you would divide responsibilities. 

The answer to all of these would be clear and concise documentation. Documenting and standardising have helped design systems remain as efficient as they boast to be. 

Special Mention for Brad Frost’s Atomic Design 

When component based design is mentioned, our mind definitely wanders off to Atomic Design, a concept of design system proposed by Brad Frost.

Brad conceptualised his methodology based on the principles of chemistry. It may sound strange, but it is very effective.

Let’s figure it out. 

As we know that everything that is matter is composed of atoms, which bond together to form molecules that combine to become organisms. And organisms are what make the universe. 

Taking the same concept to web design, the complete UI is broken down into fundamental pieces and they are then built back up. 

Creating design systems with atomic design has five levels.

Source: Brad Frost 
  • Atoms that encompass HTML tags, like form labels and buttons;
  • Molecules that are bonded atoms, like a form label and button together;
  • Organisms that are grouped molecules to form a complex and distinct section on a layout like a product grid;
  • Templates that are formed by organisms and make a page layout possible. 
  • Pages that are the culmination of the previous for and test the effectiveness of the work done thus far.

Atomic designs are clear in their methodology and enable teams to see their envisioned goal in better detail. They boast consistency and scalability and are the paradigm of component based design systems today. Read this guide on atomic design methodology to know more.

Easing Component-based Designs 

You know almost everything about design systems now, what you need to know now is what design systems you can leverage to ease the build of component based designs on your own. 

Yes, there is always the option of creating your own design systems, and many brands, Atlassian being one name, have conceptualised their own systems. However, for smaller brands and organisations, who do not have the resources to go on their own, there are plenty of options in the market. 

Here are the top five picks for you.

Storybook 

Storybook, an open source tool meant to design and develop UI components, personifies ease in the creation of a component based design. 

  • You can preview components as you build them;
  • You can inspect individual components once you have built them;
  • You can look and analyse the different states the built components would function in;
  • And you can also import components into Storybook.

With support from a dozen JavaScript libraries and plain HTML, Storybook is easy to use and amplifies the build process.

Source: Storybook
Pattern Lab 

Build, view, test and demonstrate your UI components rapidly with Pattern Lab. It allows you to prototype at massive speed with interactivity, instead of simply providing flat designs. 

With cross-browser and multi-device testing, Pattern Lab helps to efficiently implement modification with minimal to no involvement in the code base. 

A node-powered static site generator, it can deliver everything you would need for setting up your component based UI;

  • Nested patterns 
  • Designs empowered with dynamic data 
  • Atomic design language 
  • Starter Kits (refer image below) and more 

Pattern Lab is faster, achieves a greater degree of consistency and gives you the real value for your money.

Source: Pattern Lab
Material Design 

Android;
iOS;
Or the web; 

Material Design by Google is the design system that always creates high-quality digital experiences everywhere.

It tries to keep things simple, clear and concise for everyone to follow. With three main parts at its core, Principles, Components and Theming, it helps design teams get a better grip on understanding building and customising designs. 

Source: Material Design
Atlassian Design System 

Referred to as the end-to-end design language, the Atlassian Design System helps in creating simple, intuitive and functional digital experiences

Its USP is being a holistic design system that provides the design team everything they need, from components to pattern libraries and comprehensive insights on the brand itself, its stylistic foundations and even content. 

Source: Atlassian Design 
Bit 

Another open-source design tool, Bit drives component based development that are founded on composable software to create consistent and reusable platforms. 

  • It promotes autonomy and standards with distributed code and teams;
  • It facilitates cross team collaboration to scale;
  • It also enables a composable that scales with the platforms and never repeats itself.

In simple terms, Bit makes component based development easy, distributed, consistent, reusable and efficiently manageable. 

Source: Bit.dev
OpenSense Labs Connection with Component-based Designs 

OpenSense Labs has a long history with component based designs. We love working with components and they have served us well so far, enabling us to create some of our best work.

Here is a component based design tale for you.

Edredo: Our very own edtech platform

Last year, Edredo was rebranded from Techtud. The rebranding meant an overhaul of the design on the entire site and application. It would have been a massive undertaking had it not been for component based design. 

Edredo, previously Techtud, was partly built on the concept of component based design. This helped our design team, led by Sahil Sharma, to drive changes and make them more consistent. 

Making changes to global elements was a walk in the park. A modification in universal headers just meant changing the parent component and designs became consistent as a result. 

We could simply design a header and present that component’s design for approval before coding. Once the component’s design is approved, it was coded and design work on the next component began. 

This process was repeated until all the pieces were finished and “pages” could be assembled. It was especially useful when a different designer took over designing, followed by a different developer doing the coding of the component, as they can work in tandem for high efficiency. 

“As a designer, I personally feel that component based designing has improved consistency in design tremendously. Smallest changes like colour or font can be updated on the entire product across devices within seconds. It has made design more flexible for all future updates.” - Sahil Sharma, UI/UX Designer, OpenSense Labs 
The Final Word   “Component based development increases code reusability, reduces time duration and budget for the project and it is much easier to implement globally.” - Pritish Kumar, Technical Lead, OpenSense Labs 

Reusability of design matters today, component based design systems make that possible. Breaking down components into smaller chunks, building from there is far more efficient than traditional design methodology. So, component based designs are for the win, for developers, for designers and for content editors too.

Articles Off

The Drop Times: Why is Drupal 7 Still Popular?

Main Drupal Feed - Tue, 05/31/2022 - 23:58
Drupal 8 has already reached end-of-life and Drupal 10 will soon release, yet the number of Drupal 7 websites seem to be pretty high. Lets find out why.

The Drop Times: Why is Drupal 7 Still Popular?

Main Drupal Feed - Tue, 05/31/2022 - 23:58
Drupal 8 has already reached end-of-life and Drupal 10 will soon release, yet the number of Drupal 7 websites seem to be pretty high. Lets find out why.

Specbee: Build marketing landing pages quickly and easily with Drupal 9

Main Drupal Feed - Tue, 05/31/2022 - 12:45
Build marketing landing pages quickly and easily with Drupal 9 Shefali Shetty 31 May, 2022

If you’re a marketing professional reading this article, you know creating and running marketing campaigns is not as easy as it may seem. Developing a successful marketing campaign requires strategic planning, target audience & behavior analysis, determining the right channel, message design and competitive positioning.

In my experience so far as a marketing professional, I’ve learned that focusing more on the target customer and their needs helps us build and execute more effective, result-oriented marketing campaigns. Moreover, I have learned that today, customers' needs, pain points, decisions, and attention spans change extremely rapidly. And that's without mentioning other factors such as competition, technology updates, and innovation. As quickly shifting environments force marketers to roll out new and creative marketing campaigns, they need to do so on a more frequent basis than ever.

My most fun (and easiest) part of developing a marketing campaign is building ad landing pages. I’m sure as you read on, you’ll know why. You most likely already know that marketing ad campaigns (paid or free) need to be directed to their own, specific landing pages for better results. We are a Drupal development company and we use Drupal as our website’s CMS (very obviously). Currently we are running on Drupal 9 (and here are some reasons why you should be on Drupal 9 too) and creating new pages as and when we need is really easy. Take a look at how I create a new ad campaign page for a test campaign on “Drupal 9 Migration”.

But first, a little something about Content Types

Without getting too technical, let me go ahead and say that content types in Drupal are basically types of content :) Now if that confused you, here’s an example. If your website has various kinds of information like News, Articles, Video Gallery, Photo Gallery, etc., each of them can be classified as a content type. Each content type has its own sets of fields. For example, for Articles content type you will have fields like Title, Image, Body, URL alias, Meta description and so on. 

When you install Drupal 9, you get two content types by default - basic page and article. The basic page content type is usually used to create static pages where you would not update content very often. An article content type can be used for frequently updated pages like blogs, news, events, etc. You can further extend the flexibility of these default content types by installing other contributed modules but let’s not get too technical now. For deeper customization, find a Drupal partner who can customize and build content types that suits your business requirements. In this example today, I will explain how I create an Ad landing page content type for my marketing campaign.

A Few Must-Haves in your Landing Page

The basic goal of a landing page is to convert. It is not very likely that you see immediate conversions even if you have a great landing page design. But it is important to build your landing page in a way that users return to your page and convert sooner or later. Here are some key elements your landing page must have:

  • Clear and concise copy
  • An interactive element (an image or a video or 
  • A simple and short lead form
  • An attractive CTA (it could be your form too)
  • A trust element (certificates / verified / accreditations)
  • Make them an offer they cannot refuse :)
  • SEO optimization

And here are some things you should NOT have:

  • Too many navigation elements or outbound links that distracts the user
  • Unnecessary information and clutter
Let’s Design the Campaign

Now our website has been built by our Drupal developers using a component-based design approach. Each content type can use and reuse the various components when required. The ad campaign page that I’m going to create is a content type that has been customized to meet our marketing goals. We have used the Paragraphs module as the framework to build various paragraph types (or components). By default, Paragraphs do not have any paragraph types but the developer has complete flexibility to create custom paragraph types with a combination of fields.

So here’s how I create a new Ad Campaign page.

Step 1: Create a new Ad Page

Admin-> Content -> Add content -> Ad Page

  Step 2: Add content to the paragraph types

As you can see in the screenshot below, Title, Main Title, Description are the paragraph types.

 

Title - Not only do they provide your users with context on your page but the Title tag is a great place to start optimizing for SEO. The text that I enter here is going to be the Title tag text of my new campaign page. Drupal is great when it comes to SEO optimization. Now this text will also show up on the search results page as the title. So make sure your Title tag contains relevant keywords (starting with primary and then secondary) followed by your branding. 
Here, the title I’m using is: Drupal 9 Migration and Upgrade Services by Experts | Specbee

Main Title - Here’s where I add the main header (H1) of my page. I usually want this title to have keywords without making it too keyword-y (IYKYK) but this also needs to be attractive. Show your users what they can get with your product or service. Throwing in a question helps touch some pain points. Here, I have used keywords like “Easy”, “Fast”, “Seamless”, that resonate with the customer when they are looking for a Drupal migration service expert. 
I’m using this as the main title for my campaign : Looking for Easy, Fast and Seamless Drupal 9 migration services?

Step 3: Write a Description

The Description part is another paragraph type of CKEditor (we’re using version 4 here). I love using the CKEditor because it gives the editor so much control on styling elements and adding images of my choice. 

In this description, I want our prospective customers to know the process of our Drupal migration services. So along with adding an image of the steps, I will also add some text relevant to the message I want to convey.

Once I’m done typing out my text and styling it to an H2, I hit the Insert image icon, browse for the image and upload it.

 

Don’t forget to add an apt Alternative text to make sure your image is accessible to all. Drupal 9 makes it really easy for you to build an accessible website.

 

Once you hit Save, you will now see the image right there in your editor. You can align it as per your choice. I have chosen it to align with my text to the left.

  Step 4: Add credentials to build trust

It gets easier for prospective customers to trust you when they recognize familiar and impactful credentials on your landing page. It is important to have these trust factors in the first viewport. For our website, we have customized a Certificates component that has fields like title, image, and description. When I’m designing the page, I just have to pull out the certificates that I need to display (see image below).

  Step 5: Adding the form

Now that you have added enough charm and engaging elements in your landing page, here’s where the real deal happens - the form. Some important points to note about a landing page form :

  • Always make sure it is in the first viewport. That is, the user should be able to access it without having to scroll down.
  • Add other CTAs as you scroll down the page so that a click on that CTA again leads back to the form.
  • The form or the CTA button (Submit) should have a contrasting color when compared to the rest of the first viewport. This helps bring the user’s attention to it.
  • Try limiting the form elements to 5 fields or less. Not many users enjoy filling up long forms. 

In this campaign, both the CTA and the offer are in my form. We have used the very versatile Webform module that gives us the flexibility to create simple to complex forms very easily.

 

  • Webform Title - The title of my webform which will show up right above the form. I need to make sure it is clear and also has my offer. I have titled it as: Fill out this form to get your FREE Migration Audit Report 
  • Webform - This is a dropdown list of the webforms that we have created and used throughout the site. I have to select the one that suits my requirements at this point. I have chosen the ContactUs-Ads webform that we had created for our previous ad campaigns.
Step 6: URL alias

Having a user-friendly and impressionable URL comes with many benefits including that of search engine optimization. Once I’m done with designing the campaign, the next step is to give a friendly URL alias to my ad landing page. Drupal 9 has the URL alias module in core which helps in easily adding and editing aliases when needed.

On the right side of the page, click on the URL alias button and specify the URL you would like to use. I have used “/drupal-migration-testing” as mine.

  Step 7: Save it!

And I guess we’re done! Of course, I haven’t created a very elaborate page. I have only designed the first viewport of my campaign here in this example as I wanted to keep this short (1500+ words already!). Typically, I would also add other components like a bigger text block and a client list. 

If you don’t want to publish it yet, uncheck the Published checkbox and hit save. You can also Preview what your page will look like before you save it.

And now for the results!

Drupal Migration Testing

Final thoughts

I hope you’ve enjoyed reading this article as much as I did writing about my experience with landing pages. If you found this useful, please feel free to bookmark or share this article with your friends! Are you looking for a Drupal partner to help you build you a compelling, customized and interactive website where you as the editor have total control over your content? Get in touch with us and our Drupal experts would be happy to help!

Author: Shefali Shetty

​​Meet Shefali Shetty, Director of Marketing at Specbee. An enthusiast for Drupal, she enjoys exploring and writing about the powerhouse. While not working or actively contributing back to the Drupal project, you can find her watching YouTube videos trying to learn to play the Ukulele :)

Drupal Drupal Development Drupal Planet Subscribe to our Newsletter Now Subscribe Leave this field blank

Leave us a Comment

  Recent Blogs Image Build marketing landing pages quickly and easily with Drupal 9 Image What to expect in Drupal 10 Image Auditing your Drupal Website - A Checklist Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Upgrading and consolidating multiple web properties to offer a coherent digital experience for Physicians Insurance

Upgrading the web presence of IEEE Information Theory Society, the most trusted voice for advanced technology

Great Southern Homes, one of the fastest growing home builders in the United States, sees greater results with Drupal 9

View all Case Studies

Boot

Drupal Themes - Mon, 05/30/2022 - 17:55

A responsive, mobile-first, and customizable Bootstrap-based theme.

PreviousNext: Overriding base field labels and descriptions of Drupal Entities without custom code

Main Drupal Feed - Fri, 05/27/2022 - 04:15

Have you ever had a project where you've used a core or contributed module but been asked to make slight changes to base fields? e.g. Changing the field title, default value, required state or description?

Read on to find out how to use a little-known feature of core to make these changes with only configuration.

by lee.rowlands / 27 May 2022

You may not be aware, but Drupal core has a mechanism for changing base field definitions without code, but other than for nodes, there's no real UI to make use of this API.

If you've ever changed the label of the Title field for a node-type and then exported your configuration, you've probably seen a core.base_field_override file pop up in the exported files.

These config entities can be used to modify base fields on a per-bundle basis.

Drupal core uses them to change the label of the Title field for a given node-type or the default state of the 'Promoted to front page' field.

But the same mechanism can be used for any entity-type.

So how do you go about using this feature.

Well, you've got two options - one is to use the Base Field Override UI module. This lets you change the title and description via a UI. 

But there are more properties a field override can contain, such as default values, required state and even field settings. For those cases, you need to revert to editing YML. But first you need a mechanism to generate the YML.

At present, the simplest way to do that is using Drush to evaluate the following.

drush php-eval "\Drupal::service('entity_field.manager')->getBaseFieldDefinitions({entity_type})[{field_name}]->getConfig({bundle})->save();" 

Just substitute the entity type ID, field name and bundle.

E.g. to export the YML of the 'info' (label) field on the block content entity from 'Block description' for a block-type called 'gallery' you would run

drush php-eval "\Drupal::service('entity_field.manager')->getBaseFieldDefinitions('block_content')['info']->getConfig('gallery')->save();" 

Once that is done, you can run drush config:export -y to export your configuration and you should see a new core.base_field_override.block_content.gallery.info.yml in your config export folder.

You can now edit this file and make the changes you need, and then re-import it using drush config:import -y.

If the entity-type you need to override doesn't support bundles, just use the entity type ID in place of the bundle, e.g. for the User entity, use user for both the entity type ID and bundle.

The advantage of this approach is you don't need to keep an extra module around (Base Field Override UI) just for one-off changes.

Thanks to Adam Bramley for reminding me of this feature. I have a slack comment from him pinned in my saved items and refer to it all the time!

Tagged Entities, configuration management

PreviousNext: Overriding base field labels and descriptions of Drupal Entities without custom code

Main Drupal Feed - Fri, 05/27/2022 - 04:15

Have you ever had a project where you've used a core or contributed module but been asked to make slight changes to base fields? e.g. Changing the field title, default value, required state or description?

Read on to find out how to use a little-known feature of core to make these changes with only configuration.

by lee.rowlands / 27 May 2022

You may not be aware, but Drupal core has a mechanism for changing base field definitions without code, but other than for nodes, there's no real UI to make use of this API.

If you've ever changed the label of the Title field for a node-type and then exported your configuration, you've probably seen a core.base_field_override file pop up in the exported files.

These config entities can be used to modify base fields on a per-bundle basis.

Drupal core uses them to change the label of the Title field for a given node-type or the default state of the 'Promoted to front page' field.

But the same mechanism can be used for any entity-type.

So how do you go about using this feature.

Well, you've got two options - one is to use the Base Field Override UI module. This lets you change the title and description via a UI. 

But there are more properties a field override can contain, such as default values, required state and even field settings. For those cases, you need to revert to editing YML. But first you need a mechanism to generate the YML.

At present, the simplest way to do that is using Drush to evaluate the following.

drush php-eval "\Drupal::service('entity_field.manager')->getBaseFieldDefinitions({entity_type})[{field_name}]->getConfig({bundle})->save();" 

Just substitute the entity type ID, field name and bundle.

E.g. to export the YML of the 'info' (label) field on the block content entity from 'Block description' for a block-type called 'gallery' you would run

drush php-eval "\Drupal::service('entity_field.manager')->getBaseFieldDefinitions('block_content')['info']->getConfig('gallery')->save();" 

Once that is done, you can run drush config:export -y to export your configuration and you should see a new core.base_field_override.block_content.gallery.info.yml in your config export folder.

You can now edit this file and make the changes you need, and then re-import it using drush config:import -y.

If the entity-type you need to override doesn't support bundles, just use the entity type ID in place of the bundle, e.g. for the User entity, use user for both the entity type ID and bundle.

The advantage of this approach is you don't need to keep an extra module around (Base Field Override UI) just for one-off changes.

Thanks to Adam Bramley for reminding me of this feature. I have a slack comment from him pinned in my saved items and refer to it all the time!

Tagged Entities, configuration management

PreviousNext: Overriding base field labels and descriptions of Drupal Entities without custom code

Main Drupal Feed - Fri, 05/27/2022 - 04:15

Have you ever had a project where you've used a core or contributed module but been asked to make slight changes to base fields? e.g. Changing the field title, default value, required state or description?

Read on to find out how to use a little-known feature of core to make these changes with only configuration.

by lee.rowlands / 27 May 2022

You may not be aware, but Drupal core has a mechanism for changing base field definitions without code, but other than for nodes, there's no real UI to make use of this API.

If you've ever changed the label of the Title field for a node-type and then exported your configuration, you've probably seen a core.base_field_override file pop up in the exported files.

These config entities can be used to modify base fields on a per-bundle basis.

Drupal core uses them to change the label of the Title field for a given node-type or the default state of the 'Promoted to front page' field.

But the same mechanism can be used for any entity-type.

So how do you go about using this feature.

Well, you've got two options - one is to use the Base Field Override UI module. This lets you change the title and description via a UI. 

But there are more properties a field override can contain, such as default values, required state and even field settings. For those cases, you need to revert to editing YML. But first you need a mechanism to generate the YML.

At present, the simplest way to do that is using Drush to evaluate the following.

drush php-eval "\Drupal::service('entity_field.manager')->getBaseFieldDefinitions({entity_type})[{field_name}]->getConfig({bundle})->save();" 

Just substitute the entity type ID, field name and bundle.

E.g. to export the YML of the 'info' (label) field on the block content entity from 'Block description' for a block-type called 'gallery' you would run

drush php-eval "\Drupal::service('entity_field.manager')->getBaseFieldDefinitions('block_content')['info']->getConfig('gallery')->save();" 

Once that is done, you can run drush config:export -y to export your configuration and you should see a new core.base_field_override.block_content.gallery.info.yml in your config export folder.

You can now edit this file and make the changes you need, and then re-import it using drush config:import -y.

If the entity-type you need to override doesn't support bundles, just use the entity type ID in place of the bundle, e.g. for the User entity, use user for both the entity type ID and bundle.

The advantage of this approach is you don't need to keep an extra module around (Base Field Override UI) just for one-off changes.

Thanks to Adam Bramley for reminding me of this feature. I have a slack comment from him pinned in my saved items and refer to it all the time!

Tagged Entities, configuration management

Liip: 3 steps to make your devs love you by preparing custom icons the right way

Main Drupal Feed - Thu, 05/26/2022 - 22:00

For a recent project, we felt it was necessary to ship a few of our own custom icons. Before bringing them over to code, I tidied up the design files. It quickly dawned on me that you should follow a clear protocol to help the development be as efficient as possible. To make your and the life of your developers easier, I want to share the following 3 steps with you. Everybody loves doing less busy work! This write-up focuses on Figma because that's what we use, but most of the steps should be similar for other design software.

Step 1: Use a single icon component

Self-care is important, so this first one is for my designer buddies: Do yourself a favour and use Figma components. More specifically, use just one component for all icons and then add a variant for each specific icon.

Putting all your icons in a component makes it easier to reuse them

Unfortunately, selecting the icon variant from the variant dropdown in Figma is a bit clunky. You might be tempted to make a component for each individual icon. That's good; at least you're using components. There is, however, a tremendous disadvantage to this.

Most likely, the icon component will at some point be consumed by other components. A button component is a natural example of this. If you want a little icon next to the button label, use a single component and you can just drop in the icon component. Boom! You're done. What about adding a new icon? Add a variant, update, and it's available in the button. If you use individual components, you have to add each new one to the button, creating a considerable amount of pointless work.

By the way, this is not exclusive to custom icons. It also helps to do this when dealing with library icons from Figma plugins (which, really, should give you a component to work with, but most of them won't).

Step 2: Size icons so they have the same aspect ratio

Now that we have the Figma in order for ourselves, we move on to help our devs. To get our custom icons from Figma to code, it is very important that they all can be exported with the same aspect ratio. You don't feel the pain of this in a design tool, but icons must be treated completely interchangeable in UI code. If different icons have different aspect ratios, that means we potentially have to adapt the whitespace of the button, table, or alert in which we use the icon to keep padding consistent. That means we must review every individual usage. Different sizes generate a lot of individual exceptions in UI code, creating undue extra work for developers. That’s why we say that this is bad architecture: Icons should not influence their parent components, they should be generic. This should be fixed at the source, so it's on us designers. To prevent fiddling with Figma's resizing options, create an explicitly sized frame in Figma and drag your icon into it.

Use a new frame to easily change the whitespace of your icons

We usually don't encounter this problem because most libraries just export icons as squares. This is certainly the most one-size-fits-all approach, but if all your brand’s icons work better in a 4:3 aspect ratio, then go for it. The important thing is that every icon has the same format.

Step 3: Make sure your icons have similar visual weight

While sizing icons for export, there’s a good chance you will run into an issue where multiple icons in a button bar or a longer form are not balanced right. You correctly put all icons in same-size, same-aspect-ratio containers, but something looks off. Some icons draw the eye more. This is another thing we have to fix that libraries usually provide for us out of the box. Icons that have heavier lines, more filled out areas, or a better fitting shape for our chosen aspect ratio look bigger than others. You can make them smaller or larger within their frame to visually balance them with the other icons in your set.

Make icons have the same visual weight by changing their size

It's possible you don't realise this was an issue because you can just resize icons in Figma to deal with it. But that doesn't work in code, where the size of parent components might be affected. Again, you must fix the root of the problem by not generating exceptions in the first place. Remember, developers could be dealing with hundreds of permutations here, especially if icons can be set in your site's CMS.

There you go! With the help of Figma's excellent SVG exporting capabilities, developers should be able to take it from here. These are the steps I would recommend taking with custom icons to make your own and other people's lives easier. Please try them, I'd love to know how they work for you!

Featured Image by Balázs Kétyi on Unsplash

ImageX: Bon Appétit: Top Modules for Creating User-Friendly Menus in Drupal

Main Drupal Feed - Thu, 05/26/2022 - 16:20
In eateries and websites alike, menus offer guests a selection of options to enjoy.  It may be obvious, but menus are indispensable website navigation elements. If properly built and well-positioned, they greatly increase the chance that customers feel more engaged, find what they are looking for, and ultimately,  end up with a conversion.  It’s great to know Drupal offers plenty of tools both to make website menus user-friendly and help menu creators — admins, editors, developers — build them as easily and quickly as possible. 

ImageX: Bon Appétit: Top Modules for Creating User-Friendly Menus in Drupal

Main Drupal Feed - Thu, 05/26/2022 - 16:20
In eateries and websites alike, menus offer guests a selection of options to enjoy.  It may be obvious, but menus are indispensable website navigation elements. If properly built and well-positioned, they greatly increase the chance that customers feel more engaged, find what they are looking for, and ultimately,  end up with a conversion.  It’s great to know Drupal offers plenty of tools both to make website menus user-friendly and help menu creators — admins, editors, developers — build them as easily and quickly as possible. 

Security advisories: Drupal core - Moderately critical - Third-party libraries - SA-CORE-2022-010

Main Drupal Feed - Wed, 05/25/2022 - 19:39
Project: Drupal coreDate: 2022-May-25Security risk: Moderately critical 13∕25 AC:Complex/A:None/CI:Some/II:Some/E:Theoretical/TD:UncommonVulnerability: Third-party librariesCVE IDs: CVE-2022-29248Description: 

Drupal uses the third-party Guzzle library for handling HTTP requests and responses to external services. Guzzle has released a security update which does not affect Drupal core, but may affect some contributed projects or custom code on Drupal sites.

We are issuing this security advisory outside our regular Drupal security release window schedule since Guzzle has already published information about the vulnerability, and vulnerabilities might exist in contributed modules or custom modules that use Guzzle for outgoing requests. Guzzle has rated this vulnerability as high-risk.

This advisory is not covered by Drupal Steward.

Solution: 

Install the latest version:

All versions of Drupal 9 prior to 9.2.x are end-of-life and do not receive security coverage. Note that Drupal 8 has reached its end of life.

Drupal 7 is not affected.

Reported By: Fixed By: 

Security advisories: Drupal core - Moderately critical - Third-party libraries - SA-CORE-2022-010

Main Drupal Feed - Wed, 05/25/2022 - 19:39
Project: Drupal coreDate: 2022-May-25Security risk: Moderately critical 13∕25 AC:Complex/A:None/CI:Some/II:Some/E:Theoretical/TD:UncommonVulnerability: Third-party librariesCVE IDs: CVE-2022-29248Description: 

Drupal uses the third-party Guzzle library for handling HTTP requests and responses to external services. Guzzle has released a security update which does not affect Drupal core, but may affect some contributed projects or custom code on Drupal sites.

We are issuing this security advisory outside our regular Drupal security release window schedule since Guzzle has already published information about the vulnerability, and vulnerabilities might exist in contributed modules or custom modules that use Guzzle for outgoing requests. Guzzle has rated this vulnerability as high-risk.

This advisory is not covered by Drupal Steward.

Solution: 

Install the latest version:

All versions of Drupal 9 prior to 9.2.x are end-of-life and do not receive security coverage. Note that Drupal 8 has reached its end of life.

Drupal 7 is not affected.

Reported By: Fixed By: 

Liip: What is Liip’s contribution to a better world?

Main Drupal Feed - Tue, 05/24/2022 - 22:00

Together with our clients, we want to maximise our impact on sustainable development. We distinguish between the impact on people and the environment resulting from within Liip, and from the projects that we implement. So the HOW and the WHAT. We wrote extensively about the HOW last year.

What are Sustainable Development Goals?

In 2015, the UN adopted the Sustainable Development Goals. The 17 goals set out the key areas of the social, environmental and economic sustainable development that the global community seeks to achieve. Examples include measures on climate action (13) or protecting life below water (14) and on land (15).

We opted for the internationally broadly supported SDGs,because the current proliferation of tools and labels are obstacles more than help. There is currently no single standard, as has been in place for decades for financial accounting, for example.

So that we do not lose an opportunity, we are using the SDGs to collect impact data at a very high level of granularity across all aspects of sustainability.

What exactly are we measuring?

How does the project affect the SDGs? Which SDGs more than others? And what about the company behind it: is there a clear, mandatory message regarding its impact on humans and the environment? We have assigned a percentage weighting to the individual goals. For example, topics such as species protection (14/15) or climate action (13) are weighted much more heavily for a food producer than they would be for a training company.

We then take a look at how strongly connected the project is with the company’s activities. Does the project represent the client’s main area of activity, or is it far removed from its core business? The project’s classification may be congruent with the company, may be separate, or may be a mixture of both.

For each individual aspect, we rate the contribution to a specific sustainability goal on a scale of -2 to +2. We use objective, measurable criteria wherever possible. For example, has a company made a clear and verifiable statement using recognised methods regarding if and how it expects to achieve the climate targets from the Paris Agreement?

Figure 1: Relevance and impact assessment of the individual UN goals of the client project

Of course, there are also assessments for which we lack the data basis. This is a weak point, and we will try to cross-check with recognised agencies wherever possible, especially for large-scale projects.

Figure 2: Sustainability impact of a customer product, composed of company impact (here 80%) and project impact (here 20%)

And how well are we performing?

Our first ‘inventory’ offered a fundamentally good result. Most projects are positively contributing to the SDGs, respectively do not produce any demonstrable damage. This is also thanks to the fact that we have consistently rejected critical projects ever since the company was founded – for example, any projects related to oil production or conflict materials. We are therefore beginning the measurement with a ‘beneficial’ portfolio. Due to the fact that the topic of biodiversity as a whole still receives far too little attention in the economy. This also influences our portfolio. We will pay special attention to this goal.

We now have an overall picture of our activities. This enables us to prioritise specific goals that are not doing so well more strategically.To keep it simple, we multiply the hours worked on a project by the impact on a goal. Admittedly, this is rather imprecise, but it is still meaningful for us because it gives us an indicator of what we are spending our time on in the first place.

Figure 3: Effect of hours worked for clients per SDG

Is this just greenwashing?

There are currently huge amounts of activity relating to impact measurement. And much of this is marginal. Sustainability is currently in fashion, and often things that are brown and unfair are painted green and put in a social light. Because we are aware of this, we are operating as cautiously as possible by setting broad system limits, and by drawing on a holistic metric with the SDGs. And, in the event of doubt, we make a more conservative assessment to avoid a false sense of security. As a point of principle, we obtain publicly available evidence and statements from companies wherever these are available.

What is the next step?

We plan to take this chosen approach a long way. Most likely further than the majority of SMEs in the service sector in Switzerland. In their role as suppliers, we want our clients to receive added value from their proven impact.

However, this is a risk and ventures into much uncharted territory. We are currently gaining experience and identifying a series of focus topics, through which we will be able to use our skills to provide our clients with the greatest positive contribution toward sustainable development.

To be continued.

Pages