একক উপাদান লোডার: বার প্লেটো ব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.

একক উপাদান লোডার: বার

আমরা স্পিনারদের দিকে তাকিয়েছি। আমরা বিন্দু দেখেছি. এখন আমরা লোডারদের জন্য আরেকটি সাধারণ প্যাটার্ন মোকাবেলা করতে যাচ্ছি: বার. এবং আমরা সিরিজের এই তৃতীয় প্রবন্ধে একই জিনিস করতে যাচ্ছি যেমনটি আমাদের কাছে আছে শুধুমাত্র একটি উপাদান দিয়ে এবং নমনীয় CSS দিয়ে তৈরি করে যা বৈচিত্র তৈরি করা সহজ করে।

প্রবন্ধ সিরিজ

একটি নয়, দুটি নয়, বার লোডারের 20টি উদাহরণ দিয়ে শুরু করা যাক।

কোডপেন এম্বেড ফলব্যাক
কোডপেন এম্বেড ফলব্যাক

কি?! আপনি তাদের প্রতিটি এক বিস্তারিত যাচ্ছে? এটি একটি নিবন্ধের জন্য খুব বেশি!

এটা প্রথম নজরে মনে হতে পারে! কিন্তু তাদের সকলেই একই কোড স্ট্রাকচারের উপর নির্ভর করে এবং আমরা বৈচিত্র তৈরি করতে শুধুমাত্র কয়েকটি মান আপডেট করি। যে CSS এর সব ক্ষমতা. আমরা কীভাবে একটি লোডার তৈরি করতে হয় তা শিখি না, তবে আমরা বিভিন্ন কৌশল শিখি যা আমাদের শুধুমাত্র একই কোড কাঠামো ব্যবহার করে যতটা লোডার তৈরি করতে চাই।

এর কিছু বার করা যাক!

আমরা তাদের ব্যবহার করে মাত্রা নির্ধারণ করে শুরু করি width (অথবা height) সঙ্গে aspect-ratio অনুপাত বজায় রাখতে:

.bars { width: 45px; aspect-ratio: 1;
}

আমরা ব্যাকগ্রাউন্ডে একটি রৈখিক গ্রেডিয়েন্ট সহ তিনটি বার বাছাই করি - এই সিরিজের পার্ট 2-এ আমরা কীভাবে ডট লোডার তৈরি করেছি তার অনুরূপ।

.bars { width: 45px; aspect-ratio: 1; --c: no-repeat linear-gradient(#000 0 0); /* we define the color here */ background: var(--c) 0% 50%, var(--c) 50% 50%, var(--c) 100% 50%; background-size: 20% 100%; /* 20% * (3 bars + 2 spaces) = 100% */
}

উপরের কোডটি আমাদের নিম্নলিখিত ফলাফল দেবে:

একক উপাদান লোডার: বার প্লেটো ব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.
একক উপাদান লোডার: বার

এই সিরিজের অন্যান্য নিবন্ধের মত, আমরা অনেক মোকাবেলা করতে যাচ্ছি background চালাকি সুতরাং, আপনি যদি কখনও মনে করেন যে আমরা খুব দ্রুত ঝাঁপিয়ে পড়ছি বা আপনার আরও একটু বিস্তারিত প্রয়োজন মনে হয়, অনুগ্রহ করে সেগুলি পরীক্ষা করে দেখুন৷ আপনি আমার পড়তে পারেন স্ট্যাক ওভারফ্লো উত্তর যেখানে আমি দিই একটি বিস্তারিত ব্যাখ্যা কিভাবে এই সব কাজ করে.

বার অ্যানিমেটিং

বার লোডার তৈরি করতে আমরা হয় উপাদানটির আকার বা অবস্থান অ্যানিমেট করি। আসুন নিম্নলিখিত অ্যানিমেশন কীফ্রেমগুলি সংজ্ঞায়িত করে আকারটি অ্যানিমেট করি:

@keyframes load { 0% { background-size: 20% 100%, 20% 100%, 20% 100%; } /* 1 */ 33% { background-size: 20% 10% , 20% 100%, 20% 100%; } /* 2 */ 50% { background-size: 20% 100%, 20% 10% , 20% 100%; } /* 3 */ 66% { background-size: 20% 100%, 20% 100%, 20% 10%; } /* 4 */ 100% { background-size: 20% 100%, 20% 100%, 20% 100%; } /* 5 */
}

দেখুন সেখানে কি হচ্ছে? 0% এবং 100% এর মধ্যে, অ্যানিমেশন পরিবর্তন করে background-size উপাদানটির পটভূমি গ্রেডিয়েন্টের। প্রতিটি কীফ্রেম তিনটি ব্যাকগ্রাউন্ড সাইজ সেট করে (প্রতিটি গ্রেডিয়েন্টের জন্য একটি)।

একক উপাদান লোডার: বার প্লেটো ব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.
একক উপাদান লোডার: বার

এবং আমরা যা পাই তা এখানে:

কোডপেন এম্বেড ফলব্যাক

সাইজ বা পজিশনের জন্য বিভিন্ন অ্যানিমেশন কনফিগারেশনের সাথে খেলার মাধ্যমে আমরা যে সম্ভাব্য বৈচিত্রগুলি পেতে পারি তা কি আপনি কল্পনা করতে শুরু করতে পারেন?

এর আকার ঠিক করা যাক 20% 50% এবং এই সময় অবস্থান আপডেট করুন:

.loader { width: 45px; aspect-ratio: .75; --c: no-repeat linear-gradient(#000 0 0); background: var(--c), var(--c), var(--c); background-size: 20% 50%; animation: load 1s infinite linear;
}
@keyframes load { 0% { background-position: 0% 100%, 50% 100%, 100% 100%; } /* 1 */ 20% { background-position: 0% 50% , 50% 100%, 100% 100%; } /* 2 */ 40% { background-position: 0% 0% , 50% 50% , 100% 100%; } /* 3 */ 60% { background-position: 0% 100%, 50% 0% , 100% 50%; } /* 4 */ 80% { background-position: 0% 100%, 50% 100%, 100% 0%; } /* 5 */ 100% { background-position: 0% 100%, 50% 100%, 100% 100%; } /* 6 */
}
একক উপাদান লোডার: বার প্লেটো ব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.
একক উপাদান লোডার: বার

…যা আমাদের অন্য লোডার পায়!

কোডপেন এম্বেড ফলব্যাক

আপনি সম্ভবত এখন পর্যন্ত কৌশল পেয়েছেন। আপনার যা দরকার তা হল একটি টাইমলাইন সংজ্ঞায়িত করা যা আপনি একটি কীফ্রেমে অনুবাদ করেন। অ্যানিমেট করে আকার, অবস্থান—বা উভয়ই! — আমাদের নখদর্পণে অসীম সংখ্যক লোডার সম্ভাবনা রয়েছে।

এবং একবার আমরা এই জাতীয় কৌশলের সাথে স্বাচ্ছন্দ্য বোধ করলে আমরা আরও এগিয়ে যেতে পারি এবং এমনকি তৈরি করতে আরও জটিল গ্রেডিয়েন্ট ব্যবহার করতে পারি অধিক লোডার

কোডপেন এম্বেড ফলব্যাক

সেই ডেমোতে শেষ দুটি উদাহরণের জন্য আশা করুন, সমস্ত বার লোডার একই অন্তর্নিহিত মার্কআপ এবং শৈলী এবং অ্যানিমেশনের বিভিন্ন সমন্বয় ব্যবহার করে। কোডটি খুলুন এবং প্রতিটি ফ্রেম স্বাধীনভাবে কল্পনা করার চেষ্টা করুন; আপনি দেখতে পাবেন ডজন ডজন তৈরি করা কতটা তুচ্ছ- শত শত না হলে — বৈচিত্র্যের।

অভিনব হচ্ছে

ডট লোডারগুলির সাথে আমরা যে মাস্ক কৌশলটি করেছি তা কি আপনি মনে রেখেছেন? এই সিরিজের দ্বিতীয় নিবন্ধ? আমরা এখানে একই কাজ করতে পারেন!

উপরের সমস্ত যুক্তিগুলো যদি আমরা ভিতরে প্রয়োগ করি mask সম্পত্তি আমরা আমাদের লোডারগুলিতে একটি অভিনব রঙ যোগ করতে যেকোন ব্যাকগ্রাউন্ড কনফিগারেশন ব্যবহার করতে পারি।

আসুন একটি ডেমো নিন এবং এটি আপডেট করুন:

কোডপেন এম্বেড ফলব্যাক

আমি যা করেছি সব আপডেট করা হয় background-* সঙ্গে mask-* এবং আমি একটি গ্রেডিয়েন্ট রঙ যোগ করেছি। যতটা সহজ এবং তবুও আমরা আরেকটি দুর্দান্ত লোডার পাই।

তাই বলে বিন্দু আর দণ্ডের মধ্যে কোন পার্থক্য নেই?

কোন পার্থক্য নেই! আমি যতটা সম্ভব উদাহরণ কভার করার জন্য দুটি ভিন্ন নিবন্ধ লিখেছি কিন্তু উভয় ক্ষেত্রেই, আমি একই কৌশলগুলির উপর নির্ভর করছি:

  1. আকার তৈরি করতে গ্রেডিয়েন্ট (বিন্দু বা বার বা অন্য কিছু)
  2. অ্যানিমেটিং background-size এবং / অথবা background-position লোডার অ্যানিমেশন তৈরি করতে
  3. রঙের স্পর্শ যোগ করতে মুখোশ যোগ করা হচ্ছে

বার বৃত্তাকার

চলুন এবার ভিন্ন কিছু চেষ্টা করি যেখানে আমরা আমাদের বারের প্রান্তগুলিকে বৃত্তাকার করতে পারি।

কোডপেন এম্বেড ফলব্যাক

একটি উপাদান এবং তার ব্যবহার ::before এবং ::after ছদ্ম, আমরা তিনটি অভিন্ন বার সংজ্ঞায়িত করি:

.loader { --s: 100px; /* control the size */ display: grid; place-items: center; place-content: center; margin: 0 calc(var(--s) / 2); /* 50px */
}
.loader::before,
.loader::after { content: ""; grid-area: 1/1;
}
.loader,
.loader::before,
.loader::after { height: var(--s); width: calc(var(--s) / 5); /* 20px */ border-radius: var(--s); transform: translate(calc(var(--_i, 0) * 200%));
}
.loader::before { --_i: -1; }
.loader::after { --_i: 1; }

এটি আমাদের তিনটি বার দেয়, এবার একটি রৈখিক গ্রেডিয়েন্টের উপর নির্ভর না করে:

একক উপাদান লোডার: বার প্লেটো ব্লকচেইন ডেটা ইন্টেলিজেন্স। উল্লম্ব অনুসন্ধান. আ.
একক উপাদান লোডার: বার

এখন কৌশলটি হল সেই বারগুলিকে একটি সুন্দর গ্রেডিয়েন্ট দিয়ে পূরণ করা। একটি ক্রমাগত গ্রেডিয়েন্ট অনুকরণ করতে, আমাদের সাথে খেলতে হবে background বৈশিষ্ট্য উপরের চিত্রে, সবুজ এলাকা লোডার দ্বারা আচ্ছাদিত এলাকা সংজ্ঞায়িত করে। সেই ক্ষেত্রটি গ্রেডিয়েন্টের আকার হওয়া উচিত এবং, যদি আমরা গণিত করি, এটি লেবেলযুক্ত উভয় পক্ষকে গুণ করার সমান S চিত্রে, বা background-size: var(--s) var(--s).

যেহেতু আমাদের উপাদানগুলি পৃথকভাবে স্থাপন করা হয়েছে, তাই আমাদের প্রতিটির ভিতরে গ্রেডিয়েন্টের অবস্থান আপডেট করতে হবে যাতে সেগুলি ওভারল্যাপ হয়। এইভাবে, আমরা একটি ক্রমাগত গ্রেডিয়েন্ট অনুকরণ করছি যদিও এটি সত্যিই তাদের তিনটি।

প্রধান উপাদানের জন্য (কেন্দ্রে রাখা), পটভূমি কেন্দ্রে থাকা প্রয়োজন। আমরা নিম্নলিখিত ব্যবহার করি:

.loader { /* etc. */ background: linear-gradient() 50% / var(--s) var(--s);
}

বাম দিকে ছদ্ম-উপাদানের জন্য, আমাদের বাম দিকের পটভূমি প্রয়োজন

.loader::before { /* etc. */ background: linear-gradient() 0% / var(--s) var(--s);
}

এবং ডানদিকে সিউডোর জন্য, পটভূমিটি ডানদিকে অবস্থান করা দরকার:

.loader::after { background: linear-gradient() 100% / var(--s) var(--s);
}

একই CSS ভেরিয়েবল ব্যবহার করে, --_i, যা আমরা অনুবাদের জন্য ব্যবহার করেছি, আমরা এইরকম কোড লিখতে পারি:

.loader { --s: 100px; /* control the size */ --c: linear-gradient(/* etc. */); /* control the coloration */ display: grid; place-items: center; place-content: center;
}
.loader::before,
.loader::after{ content: ""; grid-area: 1/1;
}
.loader,
.loader::before,
.loader::after{ height: var(--s); width: calc(var(--s) / 5); border-radius: var(--s); background: var(--c) calc(50% + var(--_i, 0) * 50%) / var(--s) var(--s); transform: translate(calc(var(--_i, 0) * 200%));
}
.loader::before { --_i: -1; }
.loader::after { --_i: 1; }

এখন, আমাদের যা করতে হবে তা হল উচ্চতা অ্যানিমেট করা এবং কিছু বিলম্ব যোগ করা! এখানে তিনটি উদাহরণ রয়েছে যেখানে রঙ এবং আকারগুলি আলাদা:

কোডপেন এম্বেড ফলব্যাক

মোড়ক উম্মচন

আমি আশা করি এখন পর্যন্ত আপনি জটিল চেহারার লোডিং অ্যানিমেশনগুলি তৈরি করার সমস্ত শক্তি দ্বারা অত্যন্ত উত্সাহিত বোধ করছেন। বার আঁকতে আমাদের শুধু একটি উপাদান প্রয়োজন, হয় গ্রেডিয়েন্ট বা সিউডো, তারপর কিছু কীফ্রেম জিনিসগুলিকে ঘুরিয়ে দেওয়ার জন্য। অশেষ সংখ্যক সম্ভাবনা পাওয়ার জন্য এটি সম্পূর্ণ রেসিপি, তাই বাইরে যান এবং কিছু ঝরঝরে জিনিস রান্না করা শুরু করুন!

পরবর্তী নিবন্ধ পর্যন্ত, আমি আপনাকে লোডারগুলির একটি মজার সংগ্রহ নিয়ে চলে যাব যেখানে আমি একত্রিত করছি বিন্দু এবং বাধা গুলি!

কোডপেন এম্বেড ফলব্যাক
কোডপেন এম্বেড ফলব্যাক

প্রবন্ধ সিরিজ


একক উপাদান লোডার: বার মূলত প্রকাশিত সিএসএস-ট্রিকস। তোমার উচিত নিউজলেটার পান.

সময় স্ট্যাম্প:

থেকে আরো সিএসএস কৌশল