Custom T Shirt with no Borders

Custom T Shirt with no Borders

Custom T Shirt with no Borders

Does any one know a website I can create a custom t shirt with no boundaries? For example see the picture.

Most custom t shirt websites cut off mid way.

submitted by /u/spency_be

Source link

Overview of JavaScript Data Tables

Overview of JavaScript Data Tables

When developing a data-intensive business web application, you will certainly require a data table (also known as a grid table or data grid). It is a key UI element for organizing large amounts of data in a tabular form and thereby enabling end-users to conveniently interact with it. The implementation of this functionality can have a great impact on important parameters such as performance and user experience.

Therefore, it is often recommended to utilize ready-made JavaScript data tables. They have various useful features and help make the coding part much faster. But the big issue here is choosing the right grid tool from an array of products available on the market.

Let us review ten popular commercial JavaScript grid libraries and UI widgets, and highlight their main features to see how they can benefit web developers and end-users.


ag-Grid is a JavaScript data grid used for displaying large amounts of data in an Excel-like style. It is specifically designed for enterprise-grade applications to facilitate data analysis and reporting. Apart from standard grid features (column interactions, sorting, row selection), you can equip your app with more complex functionalities such as integrated charting, grouping and pivoting, live streaming updates, and others. Auxiliary tool panels offer fast and convenient access to grid operations.

With ag-Grid, you can change the overall grid appearance by applying predefined customizable themes or create your own. More specific modifications, like the styling of rows and cells are performed via CSS. The cell content is altered via cell editors. Enhanced grid performance is achieved through the use of row and column virtualization, event propagation, animation frames, and other techniques.

All technical aspects of using ag-Grid and its feature set with different frameworks are explained in the documentation section.

  • Compatible with: Angular, React, Vue.js, Polymer
  • Exporting formats: Excel, CSV
  • Trial version: ag-Grid
  • Price: from $750

Bryntum Grid

Bryntum Grid is a JavaScript grid component based on the ES2020 standard. It ships with a range of features that are commonly expected from a grid in business apps, including a reordering of rows and columns, cell editing, searching and filtering, and scrollable grid sections. Interestingly, the component can also be complemented with a tree view. The visual appearance of your grid is defined using SASS-based themes, renderer functions, and normal CSS.

Bryntum Grid utilizes various methods to ensure increased rendering and scrolling performance such as virtual rendering, application of reusable grid elements, and CSS optimizations. The grid can be configured to run properly on different screen sizes. A flexible API enables you to override almost any part of the codebase. By default, all data is loaded in JSON, but it is also possible to use custom data formats. The component is unit tested with the Siesta testing tool.

Check out the documentation page, including API overview and demos on grid features, to become familiar with Bryntum Grid and its functional capabilities in more detail.

  • Compatible with: React, Vue.js, Angular, Ext JS
  • Exporting formats: PDF, PNG
  • Trial version: Bryntum Grid
  • Price: from $850

DevExtreme Data Grid

DevExtreme Data Grid is a client-side UI widget offered by DevExpress. This grid component is designed to show table data loaded from local and remote sources and enables end-users to quickly find the necessary data and interact with it in many ways. The component allows you to build and display master-detail layouts. Data readability can be optimized via column customizations and data grouping options. Data summaries will make your grids more informative.

Data tables created with the help of this tool are touch-friendly and adaptable to different screen resolutions. There are five edit modes with built-in validation to make grid content modifications more straightforward and error-free. More flexible data binding is possible thanks to the support for local arrays, JSON files, WebAPI, and OData services. The ThemeBuilder tool will help to create a unique visual design for your grid.

If you want to learn more about this widget and its technical peculiarities, pay attention to the documentation page accompanied with a set of technical demos.

  • Compatible with: Angular, React, Vue
  • Exporting formats: Excel
  • Trial version: DevExtreme Grid
  • Price: from $499.99 (sold only in a package with other DevExtreme UI components)


DHTMLX Grid is a lightweight UI widget with a modern default look that allows building feature-rich JavaScript data tables of any complexity with touch support. A rich and simple API of this component makes it easy to specify many additional capabilities for your grid. For instance, you can highlight any specific parts (header, footer, cells with min or max values), align columns, adjust columns’ width to their footer, enable/disable tooltips, and apply auto-width.

High performance and a variety of useful features, such as rows’ and columns’ drag-and-drop, numerous sorting and filtering options, multiselection of cells, frozen columns, multiline text in columns, in-cell editing, dynamic loading, keyboard navigation, etc., ensure a positive and productive user experience. DHTMLX Grid allows presenting any numerical data in the desired way, thanks to the availability of various number formats. Special templates open up a possibility to create custom tooltips containing any HTML content for clarifying grid data. Using multiple event listeners, you can make data tables more interactive. It is possible to load data in tables from local or external sources in various formats (JSON, XML, CSV). Apps based on this JavaScript data table can be quickly and seamlessly complemented with other UI components from DHTMLX Suite with the help of Optimus micro-framework. 

The documentation page contains many step-by-step guides, therefore you won’t need much time to start using DHTMLX Grid. Interactive samples help you explore all features of this grid widget, while demo apps show examples of how this product can be applied in real-world scenarios. 


FancyGrid is a plugin-free JS library for creating grid tables in web apps. The library is designed with a special emphasis on the possibility of including charts in a grid (HighCharts and sparklines columns) and server communication (RESTful, Self-CRUD). FancyGrid also allows enabling a range of essential grid actions such as sizing, sorting, filtering, paging, and grouping. When talking about the look and feel of your data table, you can choose from several built-in themes or create a new one as well as style cells over CSS styles and CSS class names.

The library supports different data variants (Ajax, JSON, Array, nested, etc.) and ways of utilizing them. It also provides several validation types. Taking advantage of the intelligent modules system that automatically identifies and loads all necessary modules, you can significantly reduce the core library size. FancyGrid can be smoothly integrated with a form module (FancyForm). Multiple localization variants make FancyGrid adaptable to different language versions.

FancyGrid documentation, unfortunately, lacks the search option but it still provides a lot of useful info on the library’s usage and a gallery of live samples.

  • Compatible with: Angular, React, Vue.js
  • Exporting formats: Excel, CSV
  • Trial version: FancyGrid
  • Price: from $549


FlexGrid is a web data grid component with a mobile-first design written in TypeScript. One of 100+ UI controls included is the Wijmo library from GrapeCity. Originally, the component came only with an essential set of grid features such as sorting, grouping, and editing, while more advanced functions are optional. Its interaction behavior is fully based on Excel, to make end-users feel comfortable using this grid from the very beginning. The component allows for utilizing cell templates for popular frameworks with support for declarative markup and binding expressions.

FlexGrid has a small footprint (< 150KB). Thus, you should not worry that it may badly affect the performance of your app. It also makes use of virtual rendering to make your data table faster. Like all Wijmo components, it meets the CSP standard to ensure protection from malicious attacks.

Find more valuable insights about FlexGrid and its capabilities in these materials.

  • Compatible with: Angular, AngularJS, React, Vue.js, Knockout
  • Exporting formats: Excel, PDF
  • Trial version: FlexGrid
  • Price: from $695 (sold only in a package with other Wijmo UI components)


Handsontable is a JavaScript grid component that can be used for managing and analyzing data in business web apps. It is created to provide a good user experience similar to Excel or Google Sheets. Using this component, you can expand a traditional set of data grid operations with more advanced capabilities, such as multi-column sorting, nested headers, and data summaries. There is also a range of cell types (numeric, day, time, dropdown, password, etc.) and cell-related features. 

Context menus, comments, spreadsheet icons, and other utilities can be useful as well. You can also add new functionalities by utilizing custom plugins and modify source code to fully adapt it to your needs. Handsontable binds to various data sources via the JSON format and allows you to handle large volumes of records. All the data table content can be accessed with the keyboard alone.

The documentation page contains everything you should know about making the most of this JS component.

  • Compatible with: React, Angular, Vue.js
  • Exporting formats: CSV
  • Trial version: Handsontable
  • Price: from $790

Syncfusion Grid

Syncfusion Grid is a JavaScript control intended for displaying data in rows and columns in modern web browsers. Being a part of the Essential JS library, this UI grid component provides multiple record selection and editing modes, filtering and grouping capabilities, templates for custom layouts, and aggregation functions. It has a responsive layout and operates on touch screens without extra configuring. The Syncfusion Theme Studio tool will help you to create custom themes for adjusting the data table’s appearance to your requirements if five built-in themes are not good enough for your project.

The design is optimized for enhanced performance with the help of row and column virtualization. You can apply various services (RESTful, OData, WCF, JSON) for convenient data binding. Syncfusion promotes the accessibility of its grid control by including keyboard navigation and WAI-ARIA support. Internationalization and localization settings give you the chance to make your grid multilingual.

Online documentation and demo materials are primary learning resources that will help you to work with this grid control in the most efficient manner. 

  • Compatible with: React, Vue.js, Angular, Blazor
  • Exporting formats: Excel, PDF, CSV
  • Trial version: Syncfusion Grid
  • Price: from $995 (sold only in a package with other controls included in Essential JS)

Webix Grid

Webix Grid is a JavaScript UI data grid widget used for depicting various amounts of data in the form of a scrollable and sortable table. This data management tool is equipped with plenty of data handling features (copy-pasting, paging, selection modes, math operations, etc.) and customization settings. With Webix Grid you can also create tree-like structures and embed small graphs in your table. Full API support simplifies the implementation process of all required functionalities.

The dynamic mode can be switched on to render data-intensive tables without delays. The widget is ready for touch devices and fully editable, allowing seamless data entry. The correctness of the inserted data is checked with the validation feature. It is possible to utilize different formats (XML, JSON, JsArray, CSV) for specifying data. Custom behavior can be assigned for any activity that takes place in the grid table.

Webix documentation with samples and tutorials will be very helpful if you resolve to apply this widget in your business undertaking.

  • Compatible with: Angular, React, Vue.js, Backbone
  • Exporting formats: PDF, PNG, Excel, CSV
  • Trial version: Webix Grid
  • Price: from $849 (sold only in a package with other Webix UI widgets)


ZingGrid is a JavaScript library that enables you to integrate interactive data tables in web apps using the capabilities of ES6 and native web components. It comes with a large collection of features that may come in handy for your project. For instance, you can input static data and update it on demand, perform various calculations, or make use of the built-in CRUD functionality. In addition to well-known grid operations (selecting, filtering, sorting), you can incorporate a context menu, modal dialog, or drill-down to add more interactivity.

The visual design of the grid is fine-tuned via CSS selectors and CSS variables, or simply by employing predefined themes. Data tables produced with the help of this library are responsive and mobile-friendly by default. End-users with disabilities won’t have problems with ZingGrid due to a pack of embedded accessibility features. If it is necessary to make your grid faster, you can resort to infinite scrolling, server paging, or server-side rendering.

ZingGrid documentation will provide you with useful tips on the practical implementation of this component.

  • Compatible with: React, Vue.js, Angular, Polymer
  • Exporting formats: CSV
  • Trial version: ZingGrid
  • Price: from $300

Final Words 

We have explored ten JavaScript data tables for integrating a grid functionality in your web app. Still can’t decide which one suits you better? Let me give you a couple of tips. First of all, you should carefully consider the operating capabilities of each tool and exclude options that have no features which are crucial for your project.

The price is another key factor here. If your project has great financial support, then you can invest in more sophisticated but at the same time expensive grid components such as ag-Grid, Handsontable, or Bryntum. Also take into account that grid components from Syncfusion, Webix, GrapeCity (FlexGrid), and DevExtreme are distributed only with a package of other UI components, you may not want to pay for the things you don’t need. DHTMLX Grid, ZingGrid, and FancyGrid seem like solutions with decent feature-sets at reasonable prices.

Before making a final choice, it is also necessary to closely examine the documentation of the most appealing components and make use of their trial versions to see how they work in practice. Choose wisely and good luck in your coding endeavors.

Source link

r/graphic_design - [WIP] Blackpink

[WIP] Blackpink’s next mini album design idea : graphic_desi…

I actually got the idea out of pure boredom a few nights ago. I’m a Kpop fan myself, and I just wanted to try and create something decent here to practice my skills a little bit. “Ready for love” is the name of unreleased song, and I went into that way, using a heart theme. It’s not fully finished yet (atleast not as i was imagining it), so I’ll probably edit the post once I’m done with this fully, but I would appreciate feedback so I can improve my skills further as a person who actually had some decent real projects done in the past. 🙂

r/graphic_design - [WIP] Blackpink's next mini album design idea

Source link

Coding on computer screen

How To Write a File in Python

Coding on computer screen

When it comes to Python programming, one of the basic things you can do is to either write or read a file. Although the process isn’t complicated, you may need a helping hand if you’re a beginner. Whether you’re working as an author who wants to learn a little bit of coding or a tech enthusiast, this tutorial will come in handy. 

In this guide, you will learn everything you need to know about files and how to write them. What does a file contain? Why is it so important in Python? Let’s find out, shall we?

What Is a File? 

Just before we hop right into the basics of writing a file, it’s important to outline what a file is and how it works. In very simple terms, a file is a set or sequence of bytes that is used to store data of any kind. Usually, this data is perfectly organized in varying formats. 

A Python file typically contains three main parts: the header, data, and the End of File (EoF)

The header contains all the details about the file’s content. From the file name to its size and format, the basic file details can be found in the header.  The data is the main meat of the file. It is the content of the file which you have created.  On the other hand, the End of File indicates the end of the file, just like the name implies. It typically comes in the form of a special character or code.

File Paths 

A file path tells you everything you need to know about the location of a file. It is typically made up of three different parts which include: 

  • The folder path: This is the location of the folder in which the file is contained. You can have several folders containing different files. Ever had to write an essay in high school before? Remember how you had to save all materials and files in a folder titled write my essay? That’s exactly how folder paths work. 

  • The file name: This is what the file is named or titled. For instance, you could have a file named dogs.gif within a specific folder. 

  • The file extension: The file extension indicates the type of file in question. It is represented with a period and comes at the end of the file path. For instance, in the file dogs.gif, the file extension is .gif which conforms to the Graphics Interchange Format (GIF) specification.

How Can You Open or Close Files in Python? 

Before writing or handling any file in Python, you’d need to learn how to open it. However, there’s no need to panic. Opening a file is as easy as snatching candy from a baby who doesn’t want it. 

All you need to do is use the open() built-in function which is represented by open( ). 

For instance, if you’re trying to open a text file titled “cat colors”, you could invoke the open function like this:

Easy peasy! 

However, one mistake most beginner programmers make is forgetting to close a file after opening it. Once you have opened a file, you have to ensure that you close it properly. 

In some cases, a file may close on its own when you terminate an application or script. However, this isn’t guaranteed and no professional programmer counts on it. One of the most popular ways to close any file is by using the with statement

For instance:

When invoked, the with statement automatically ensures that the file is closed once it is out of the with block. Even in cases of unexpected errors, you can still rest assured that your file will be closed when all is said and done. 

If you’re a beginner who is still trying to get a hang of closing a file, the with statement will come in handy. Not only does it help you create cleaner code, but it also makes it easier to handle any unexpected errors. 

How To Write a File 

Now that we’ve covered the basics of opening and closing a file, it’s time to get to the crux: writing files. There are several methods anyone can use when dealing with python write to file. Here are two popular ones:

The write() File Method

The write method writes any specified text to the file. This is used to write to a file that already exists. The position of the stream and the file mode will determine where you should insert the specified text:

For instance:

  • a:  This is for adding text (appending) and the default placement at the end of the file. Here, you should place the text at the current file stream position. Open the file and use a to append content. Add text to the file and then close.

For instance:

To read the file after appending or overwriting, use the open() function like this:


This method writes all specified lines at once. The (sequence) refers to the order in which the strings appear. You may be required to add the necessary line endings yourself as there are none added to each sequence item.

Follow this rule when using the writelines(sequence) method:

For instance, the specified text you want to write could be in a list like Ipsumloremsamplelist. In this case, you  should create a new file by creating the file object outF with w to indicate that you want to write the file.

Now that you’ve learned how to open a Python read file and how to write a Python file, you’re only a few steps away from becoming a pro-Python programmer. Don’t forget to keep scripting and practicing. Good luck! 

Source link



Smol Responsive CSS Grid

Create an intrinsically responsive grid layout, optionally using a CSS custom property to extend to varable contexts. Each column will resize at the same rate, and break to a new row if the width reaches the --min value.

CSS for “Smol Responsive CSS Grid”
.smol-css-grid {
--min: 15ch;
--gap: 1rem;

display: grid;
grid-gap: var(--gap);
grid-template-columns: repeat(auto-fit, minmax(var(--min), 1fr));

Smol Responsive Flexbox Grid

Create an intrinsically responsive grid layout, optionally using a CSS custom property to extend to varable contexts. Each column will resize at the same rate until reaching the --min width. At that point, the last item will break to a new row and fill any available space.

CSS for “Smol Responsive Flexbox Grid”
.smol-flexbox-grid {
--min: 10ch;
--gap: 1rem;

display: flex;
flex-wrap: wrap;
gap: var(--gap);

.smol-flexbox-grid > * {
flex: 1 1 var(--min);

Smol Modern Centering

Put down the CSS centering jokes! This modern update is often the solution you’re looking for to solve your centering woes.

CSS for “Smol Modern Centering”
.smol-centering {
display: grid;
place-content: center;

Smol Responsive Padding

This smol demo is using clamp() for responsive padding. The order of clamp() values can be interpreted as: the minimum allowed value is 1rem, the ideal value is 5% (which will be relative to the element), and the max allowed value is 3rem.

In other words, as the element is placed in different contexts and resized across viewports, that value will grow and shrink. But it will always compute to a value within the range of 1rem to 3rem.

Another suggested option for the middle ideal value is to use a viewport unit, like 4vw, which works great for components such as models or setting padding on the body.

CSS for “Smol Responsive Padding”
.smol-responsive-padding {
padding: 1.5rem clamp(1rem, 5%, 3rem);

Gummi bears gummies cheesecake donut liquorice sweet roll lollipop chocolate cake macaroon. Dragée powder biscuit. Dessert topping jelly beans liquorice cake sesame snaps oat cake chocolate bar marshmallow. Cookie danish jelly-o pudding tart chocolate. Jelly sweet tiramisu fruitcake dessert muffin chocolate cake dragée. Donut dragée carrot cake icing. Macaroon lemon drops muffin.

Smol Composable Card Component

This component features aspect-ratio and leans heavily on the pseudo selectors of :not(), :is(), :first-child, and :last-child. The result is a composable card component that just works with your desired semantic internal content.

Note: Both aspect-ratio and :is() are in progress rolling out to the latest versions of modern browsers, so you may need to create fallbacks for your unique audience and consider this solution as a progressive enhancement. Fallback considerations are included as noted with comments.

This solution also uses the Smol Responsive CSS Grid to contain the cards.

CSS for “Smol Composable Card Component”
.smol-card-component {
--img-ratio: 3/2;

display: flex;
flex-direction: column;
box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.35);
border-radius: 0.5rem;

.smol-card-component > * + * {
margin-top: 1rem;

.smol-card-component > img {
aspect-ratio: var(--img-ratio);
object-fit: cover;
width: 100%;

@supports not (aspect-ratio: 1/1) {
.smol-card-component > img {
height: max(18vh, 12rem);

.smol-card-component > img:first-child {
border-radius: 0.5rem 0.5rem 0 0;

.smol-card-component > img:last-child {
border-radius: 0 0 0.5rem 0.5rem;
margin-top: auto;

.smol-card-component > *:not(img) {
margin-left: 1rem;
margin-right: 1rem;

.smol-card-component > :not(img):first-child {
margin-top: 1rem;

.smol-card-component > :last-of-type:not(img):not(:is(h2, h3, h4)) {
margin-bottom: 1rem;

.smol-card-component > :not(:-webkit-any(h2,h3,h4)) {
font-size: 0.9rem;

.smol-card-component > :not(:is(h2,h3,h4)) {
font-size: 0.9rem;

.smol-card-component > a {
align-self: start;

  • Headline

    Chocolate cake macaroon tootsie roll pastry gummies.

    Apple pie jujubes cheesecake ice cream gummies sweet roll lollipop.


  • Headline

    Chocolate cake macaroon tootsie roll pastry gummies.

  • Headline

    Apple pie jujubes cheesecake ice cream gummies sweet roll lollipop.

    Chocolate cake macaroon tootsie roll pastry gummies.

Smol Stack Layout

This smol stacked layout is a grid feature that can often replace older techniques that relied on absolute positioning. It works by defining a single grid-template-area and then assigning all direct children to that grid-area. The children are then “stacked” and can take advantage of grid positioning, such as the centering technique in the demo.

At first glance you might not notice, but that’s a video background in the demo. And all we had to do was set width: 100% to ensure it filled the grid area. Then, we make use of place-self on the h3 to center it. The rest is completely optional design styling!

Bonus features in this demo include defining the h3 size using clamp() for viewport relative sizing, and also using aspect-ratio to size the container to help reduce cumulative layout shift.

CSS for “Smol Stack Layout”
.smol-stack-layout {
display: grid;
grid-template-areas: "stack";
aspect-ratio: 16/9;
background-color: #200070;

.smol-stack-layout > * {
grid-area: stack;

.smol-stack-layout video {
width: 100%;

.smol-stack-layout h3 {
place-self: center;
font-size: clamp(2.5rem, 5vw, 5rem);
text-align: center;
line-height: 1;
font-style: italic;
padding: 5vh 2vw;

.smol-stack-layout small {
align-self: end;
justify-self: start;
padding: 0 0 0.25em 0.5em;
opacity: 0.8;
font-size: 0.8rem;

.smol-stack-layout h3,
.smol-stack-layout small
position: relative;
color: #fff;

Into The Unknown

Video from Pexels

Smol Avatar List Component

This smol component, which you may also know as a facepile, is possible due to the ability of CSS grid to easily create overlapping content. Paired with CSS custom properties and calc() we can make this a contextually resizeable component.

Based on devices capabilities, the grid columns are adjusted to slightly narrower than the --avatar-size. Since nothing inherent to CSS grid stops the content overflowing, it forces an overlap based on DOM order of the list items. To ensure perfect circle images, we first use the --avatar-size value to explicitly set the list item dimensions. Then by setting both width and height to 100% on the img in addition to object-fit: cover and border-radius: 50%, we can be assured that regardless of actual image dimensions the contents will be forced into a circle appearance.

Bonus trick #1 is the use of layered box-shadow values that only set a spread to create the appearance of borders without adding to the computed dimensions of the image. The spread values are set with em so that they are relative to the avatar size. And that works because we set the list’s font-size to --avatar-size.

Bonus trick #2 is using the general sibling combinator (~) so that on hover or :focus-within of an li, all linked images that follow animate over to reveal more of the hovered avatar. If the number of avatars will cause wrapping, you may want to choose a different effect such as changing the layering via z-index.

🔎 Pop open your browser devtools and experiment with changing the --avatar-size value!

CSS for “Smol Avatar List Component”
.smol-avatar-list {
--avatar-size: 3rem;
--avatar-count: 3;

display: grid;
grid-template-columns: repeat(
max(44px, calc(var(--avatar-size) / 1.15))
padding: 0.08em;
font-size: var(--avatar-size);

@media (any-hover: hover) and (any-pointer: fine) {
.smol-avatar-list {
grid-template-columns: repeat(
calc(var(--avatar-count) + 1),
calc(var(--avatar-size) / 1.75)

.smol-avatar-list li {
width: var(--avatar-size);
height: var(--avatar-size);

.smol-avatar-list li:hover ~ li a,
.smol-avatar-list li:focus-within ~ li a
transform: translateX(33%);

.smol-avatar-list img,
.smol-avatar-list a
display: block;
border-radius: 50%;

.smol-avatar-list a {
transition: transform 180ms ease-in-out;

.smol-avatar-list img {
width: 100%;
height: 100%;
object-fit: cover;
background-color: #fff;
box-shadow: 0 0 0 0.05em #fff, 0 0 0 0.08em rgba(0, 0, 0, 0.15);

.smol-avatar-list a:focus {
outline: 2px solid transparent;
box-shadow: 0 0 0 0.08em #29344B, 0 0 0 0.12em white;

Smol Transitions

This set of performant CSS transition utility classes include CSS custom properties for scaling the transition property and duration. We’re doing a few things in this demo that you may want to keep in mind if you use them.

First, we’re triggering the transition of the child elements on :hover of the parent. The reason for this is that for transitions that move the element, it could end up moving out from under the mouse and causing a flicker between states. The rise transition is particularly in danger of that behavior.

Second, we wrap our effect class in a media query check for prefers-reduced-motion: reduce that instantly jumps the transition to the final state. This is to comply with the request for reduced motion by effectively disabling the animated part of the transition.

CSS for “Smol Transitions”
.smol-transitions > * {
--transition-property: transform;
--transition-duration: 180ms;

transition: var(--transition-property) var(--transition-duration) ease-in-out;

.rise:hover > * {
transform: translateY(-25%);

.rotate:hover > * {
transform: rotate(15deg);

.zoom:hover > * {
transform: scale(1.1);

.fade > * {
--transition-property: opacity;
--transition-duration: 500ms;

.fade:hover > * {
opacity: 0;

@media (prefers-reduced-motion: reduce) {
.smol-transitions > * {
--transition-duration: 0.01ms;

Smol Scroll Snap

Modern CSS has gifted us a series of properties that enable setting up more controlled scrolling experiences. In this demo, you’ll find that as you begin to scroll, the middle items “snap” to the center of the scrollable area. Additionally, you are unable to scroll past more than one item at a time.

To align the scroll items, we’re using grid and updating the orientation of child items using grid-auto-flow: column. Then the width of the grid children is set using min() which selects the minimum computed value between the options provided. The selected width options in this demo results in a large section of neighboring items being visible in the scrollable area for large viewports, while on smaller viewports the scrollable area is mostly consumed by the current scroll item.

While this is a very cool feature set, use with care! Be sure to test your implementation to ensure its not inaccessible. Test across a variety of devices, and with desktop zoom particularly at levels of 200% and 400% to check for overlap and how a changed aspect ratio affects scroll items. Try it out with a screen reader and make sure you can navigate to all content.

Note: Have caution when attempting to mix fullscreen scroll snap slideshows followed by normal flow content. This can damage the overall scrolling experience and even prevent access to content. Fullscreen scroll areas are also prone to issues for users of high desktop zoom due to high risk of overlapping content as the aspect ratio changes. In addition, fullscreen versions that use y mandatory result in “scroll hijacking” which can be frustrating to users.

Also – you may have a pleasant smooth scroll experience on a touchpad or magic mouse. But mouse users who rely on interacting with the scroll bar arrows or use a click wheel can have a jarring experience. This is due to browser and OS inconsistencies in handling the snapping based on input method (an issue was specifically reported for this demo using Chrome and Edge on PC).

CSS for “Smol Scroll Snap”
.smol-scroll-snap {
display: grid;
grid-auto-flow: column;
grid-gap: 1.5rem;
overflow-x: auto;
scroll-snap-type: x mandatory;
padding: 0 0 1.5rem;
-webkit-overflow-scrolling: touch;

.smol-scroll-snap > * {
width: min(45ch, 60vw);
scroll-snap-align: center;
scroll-snap-stop: always;

Source link

r/graphic_design - 2 Custom Website designed with wix

2 Custom Website designed with wix : graphic_design

r/graphic_design - 2 Custom Website designed with wix

Website Design

Hello guys, in the last months i’ve just designed two beautiful brands, and two website using Wix from blank. Now wix allow to use database, is a really powerful tool, specially for a designer with no code skills who want to design free from a blank page . Please give feedbacks


Source link

r/webdev - I need some help please! Website document editor

I need some help please! Website document editor : webdev

Hey guys i need some help 🙂

Im working on my first bigger project. Im looking to implement an editor on my website to let users edit a document. I found some websites which do exactly what i need.

The user can input data in a form on the left side and the entered data appears on the document on the right side. An other option would be, putting the data directly into the document. I uploaded some screenshots to see what i mean.

Do you guys know if there are tools to embedd on my website that do exactly the same?

Thanks in advance for your help! 🙂



r/webdev - I need some help please! Website document editor
r/webdev - I need some help please! Website document editor

Source link

r/graphic_design - Polkadot Crypto Facebook Banner

Polkadot Crypto Facebook Banner : graphic_design

This design is created for a Freelancer contest. They are Looking for a banner for Facebook. The group name is “Polkadot Crypto News and Discussion”. The banner should have the Polkadot logo, possibly the moon, spaceman, some cool line vector graphics…Looking for the PNG and A1 or Photoshop.

How do you think of this design to showcase your creativity?

r/graphic_design - Polkadot Crypto Facebook Banner

The banner should have the Polkadot logo, possibly the moon, spaceman, some cool line vector graphics…

Looking for the PNG and A1 or Photoshop

Source link

Post image

A Quick Guide to NFTs : webdev

When talking about the current hot topics in the crypto world, one cannot miss mentioning the buzz around NFTs. While everyone is fussing over Bitcoin and other cryptocurrencies, a different type of digital asset has quietly been gaining momentum.

Evolving right alongside cryptographic and blockchain technology, non-fungible tokens or NFTs are an excellent example of the fast-paced change in the industry.

But what are they and why are companies looking at it with high hopes?

Post image

The Big Game Behind Fungibility

Before trying to figure out what the hubbub around NFTs is, let’s understand the underlying concept of fungibility. ‘Fungibility’, a rather complicated-sounding word is a simple concept that relates to the things we own and use every day. It applies to digital as well as real-world assets.

A crisp banknote in your pocket or the Bitcoin in your crypto wallet is an excellent example of a fungible asset as they can be easily replaced by something that is identical for all intents and purposes.

The tables turn completely with the non-fungible assets which are in stark contrast with the fungible ones. Unlike Bitcoin, which has a supply of 21 million identical coins, NFTs have certain individual characteristics that set them apart.

NFTs are unique, rare, and indivisible.

  1. Each NFT has metadata describing what sets it apart from the rest, a permanent, unalterable record that describes what this NFT represents, just like an authenticity certificate. You cannot swap them or directly replace them with another token as no two are alike.

  2. What makes NFTs so attractive? The simple answer is scarcity. While developers can freely generate an unlimited supply of certain assets, they also have the power to cap the number of rare, desirable items in existence.

  3. NFTs cannot be broken down into smaller denominations but can only be bought, sold, and held as a whole, making them more valuable and high in demand.

What Makes NFTs So Exciting?

The three key reasons behind the success and popularity of tokenization include:

  1. Ownership: Unlike your Twitter or Instagram handle that can be easily snatched away from you, NFTs come with ensured ownership. Blockchain technology helps enshrine your ownership rights, making it a lot easier to move the digital assets around.

  2. Transferable: NFTs can be freely traded on specialist markets. NFTs also solve the problem of” walled gardens” in games and allow coveted assets within a popular game to be used in a totally different title or exchanged for items in another game even with a different publisher.

  3. Authentic: The blockchains powering NFTs clamp down on counterfeiting and give buyers confidence that they’ll get what they pay for beating the big problem of fraud or counterfeit.

NFTs: Use Cases and Applications

  1. Gaming: Popular titles such as Fortnite prohibit the selling of rare weapons and skins. Using these assets in other games can be near to impossible most of the time. With NFTs, coveted items can be easily transferable — solving one of the biggest complaints by avid gamers.

  2. Art: Digital artists find it extremely difficult to protect their copyright creations, making it difficult for talented creators to make a living. NFTs allow customers to buy an art piece and showcase it in a virtual space, with blockchain offering proof of ownership. This allows artists to get a bigger cut of the payment and even portion out a residual profit from future sales, creating a recurring revenue stream.

  3. Virtual and Real-World Assets: The Ethereum Name Service offering .ETH domains and Unstoppable Domains offering .crypto addresses have turned each of these domain names into non‑fungible tokens to be bought and sold easily. Platforms such as Decentraland and Cryptovoxels allow people to buy plots of virtual land. Work in the real-world asset space is at its preliminary stage, but it’s possible to tokenize real-world assets like property, with NFTs being used to prove that someone owns a piece of land.

To Be Or Not To Be: The Pros And Cons of NFTs

  • While NFTs can unlock new revenue streams in gaming, sports, arts, and technology, building decentralized apps for non‑fungible tokens can be tricky and time-consuming.

  • NFTs could introduce millions of people to cryptocurrencies for the very first time but a much more simplified version of NFTs is required for people who know nothing about blockchain to use them with ease.

  • They can make it possible to own a real-world asset that’s thousands of miles away. However, NFT games can also have a ”hot potato” effect. Players might buy an asset in the hope of selling it on for a profit, but they would have to face a nasty loss if the market collapses.

If you want to get in touch, please feel free to reach out to us.

Source link

Post image

So to practice and hone some skills… (Marianne Von Edmund …

I decided out of boredom one day to begin learning some programs like Krita and After Effects (NFT gon’ B-r-r-r)

Along with the Marianne Von Edmund story and issues with the Crest of The Beast my brain went a lil haywire and conflated some things. So I just continued to down the rabbit hole and went with it to bring the community this image.

Elon Musk – Space Age – Bright New World – Technology – Beauty

In a world where those with the Crest of the Beast can counter-act their transition by going full morph ball on the battlefield. The Chozo design aspects of the Power Suit enable endless optimization and customization for the user. Ability to harness super-natural energies to its core power management system enable transformation and temporal alteration among others.

Post image

Source link