ExtJS Theming এবং Customization

Web Development - এক্সটিজেএস (ExtJS) -

ExtJS Theming এবং Customization হল ExtJS অ্যাপ্লিকেশনের ইউজার ইন্টারফেসের ভিজ্যুয়াল এবং ব্যবহারযোগ্যতা কাস্টমাইজ করার গুরুত্বপূর্ণ উপাদান। ExtJS একটি শক্তিশালী থিমিং সিস্টেম প্রদান করে, যা ডিফল্ট লুক এবং ফিল পরিবর্তন করতে সহায়তা করে। আপনি আপনার অ্যাপ্লিকেশনের জন্য কাস্টম থিম তৈরি করতে পারেন, অথবা ডিফল্ট থিমের উপর পরিবর্তন আনতে পারেন।

এই গাইডে আমরা আলোচনা করব ExtJS Theming এবং Customization সম্পর্কে এবং কিভাবে আপনি আপনার অ্যাপ্লিকেশনে কাস্টম থিম এবং স্টাইল প্রয়োগ করতে পারেন।


১. ExtJS Theming

ExtJS Theming আপনার অ্যাপ্লিকেশনের সম্পূর্ণ লুক এবং ফিল কাস্টমাইজ করতে ব্যবহৃত হয়। আপনি বিভিন্ন থিম নির্বাচন করে আপনার অ্যাপ্লিকেশনকে বিভিন্ন ডিজাইনে কনফিগার করতে পারেন, যেমন Classic, Neptune, Gray, এবং Crisp থিম।

ExtJS থিমিং এর সাথে কাজ করা

ExtJS 6 এবং তার পরবর্তী সংস্করণে থিমিং সিস্টেম আরও উন্নত করা হয়েছে এবং এটি Sencha Themer টুল দিয়ে কাস্টম থিম তৈরি করতে সহায়ক। তবে, সাধারণভাবে থিম প্রয়োগ করার জন্য কিছু সাধারণ কনফিগারেশন ব্যবহার করা যেতে পারে।

১.1. Sencha Themer ব্যবহার করা

Sencha Themer একটি ড্র্যাগ-এন্ড-ড্রপ টুল যা ব্যবহারকারীদের জন্য থিম তৈরি করা সহজ করে দেয়। আপনি Sencha Themer ব্যবহার করে প্রাক-নির্ধারিত থিমগুলি কাস্টমাইজ করতে পারেন অথবা একেবারে নতুন থিম তৈরি করতে পারেন।

  1. Sencha Themer ইনস্টল করুন এবং চালু করুন।
  2. একটি নতুন থিম তৈরি করুন বা একটি পূর্ববর্তী থিম নির্বাচন করুন।
  3. থিমে পরিবর্তনগুলি করতে গ্রাফিকাল ইন্টারফেস ব্যবহার করুন।
  4. কাস্টম থিমটি app.json ফাইলের মাধ্যমে অ্যাপ্লিকেশনে প্রয়োগ করুন।
১.2. থিম প্রয়োগের উদাহরণ
Ext.application({
    name: 'MyApp',
    theme: 'neptune',  // এখানে 'neptune' থিম ব্যবহার করা হচ্ছে
    launch: function() {
        console.log('Themed Application Launched');
    }
});

এখানে, theme: 'neptune' কনফিগারেশনটি নির্ধারণ করে যে অ্যাপ্লিকেশনটি Neptune থিমে লোড হবে।

১.3. কাস্টম থিম তৈরি করা

আপনি একটি Custom Theme তৈরি করতে পারেন যা আপনার প্রয়োজনীয়তা অনুযায়ী কাস্টমাইজড হয়।

{
    "name": "custom-theme",
    "extends": "ext-theme-neptune",
    "variables": {
        "primary-color": "#FF5733", 
        "secondary-color": "#1A1A1A"
    }
}

এখানে, primary-color এবং secondary-color কাস্টমাইজ করা হয়েছে, যা আপনার অ্যাপ্লিকেশনের বিভিন্ন UI উপাদানের রঙ পরিবর্তন করবে।


২. Customization

Customization এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনটির ইউজার ইন্টারফেসের আউটলুক এবং আচরণ কাস্টমাইজ করতে পারেন। ExtJS আপনাকে বিভিন্ন CSS, SASS, LESS, এবং JavaScript ফাইলের মাধ্যমে স্টাইল এবং ফাংশনালিটি কাস্টমাইজ করার অনুমতি দেয়।

২.1. কাস্টম CSS এবং স্টাইল প্রয়োগ করা

যদি আপনি কোনো নির্দিষ্ট উপাদান বা থিমের স্টাইল পরিবর্তন করতে চান, তবে কাস্টম CSS বা SASS ব্যবহার করতে পারেন।

কাস্টম CSS ফাইল প্রয়োগ করার উদাহরণ:

/* custom-style.css */
.x-btn {
    background-color: #FF5733 !important;  /* বাটনের ব্যাকগ্রাউন্ড রঙ পরিবর্তন */
    color: white !important;  /* বাটনের টেক্সট রঙ পরিবর্তন */
}

.x-panel-header {
    background-color: #1A1A1A !important;  /* প্যানেল হেডারের ব্যাকগ্রাউন্ড রঙ */
}

এখন, custom-style.css ফাইলটি আপনার অ্যাপ্লিকেশনের HTML বা JavaScript ফাইলের মধ্যে যুক্ত করতে পারেন।

<link rel="stylesheet" type="text/css" href="custom-style.css">

২.2. Custom Components

আপনি custom components তৈরি করতে পারেন যা নির্দিষ্ট উপাদানগুলোকে নতুনভাবে ডিজাইন বা কাস্টমাইজ করবে।

Custom Component উদাহরণ:

Ext.define('MyApp.view.CustomButton', {
    extend: 'Ext.button.Button',
    xtype: 'custombutton',
    text: 'Click Me!',
    style: {
        backgroundColor: '#FF5733',
        color: '#fff',
        fontSize: '16px'
    },
    handler: function() {
        alert('Custom Button Clicked!');
    }
});

এখানে, একটি custom button তৈরি করা হয়েছে, যার স্টাইল এবং ফাংশন কাস্টমাইজ করা হয়েছে।

২.3. Customizing Themes with Variables

আপনি SASS/LESS ফাইলের মাধ্যমে থিমের বিভিন্ন ভ্যারিয়েবল কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ, SASS ব্যবহার করে আপনি সহজেই থিমের রঙ বা স্টাইল পরিবর্তন করতে পারেন।

// custom-theme.scss
$base-color: #FF5733;
$button-background: $base-color;

@import "ext-theme-neptune";

এখানে, $base-color এবং $button-background ভ্যারিয়েবল কাস্টমাইজ করা হয়েছে, যা থিমের বিভিন্ন উপাদানে প্রভাব ফেলবে।


৩. Advanced Customization Techniques

৩.1. Using Ext.override for Customizing Components

Ext.override ব্যবহার করে আপনি ExtJS এর ডিফল্ট কম্পোনেন্টের আচরণ পরিবর্তন করতে পারেন।

Ext.override(Ext.button.Button, {
    handler: function() {
        console.log('Custom Handler');
        // ডিফল্ট হ্যান্ডলারকে ওভাররাইড করা হচ্ছে
    }
});

এখানে, Ext.override ব্যবহার করে Button কম্পোনেন্টের হ্যান্ডলার কাস্টমাইজ করা হয়েছে।

৩.2. Creating a Custom Grid Column Renderer

আপনি grid column renderer কাস্টমাইজ করতে পারেন যাতে গ্রিডের কলামগুলিতে কাস্টম লজিক প্রয়োগ করা যায়।

Ext.create('Ext.grid.Panel', {
    store: myStore,
    columns: [{
        text: 'Name',
        dataIndex: 'name',
        renderer: function(value) {
            return '<b>' + value + '</b>';  // নামটিকে বোল্ড করা
        }
    }]
});

এখানে, renderer ব্যবহার করে গ্রিডের কলামে কাস্টম HTML স্টাইল প্রয়োগ করা হয়েছে।


সারাংশ

  1. Theming: ExtJS তে আপনি থিম নির্বাচন করে অ্যাপ্লিকেশনের ভিজ্যুয়াল লুক পরিবর্তন করতে পারেন। আপনি ডিফল্ট থিমের উপর কাস্টম থিম তৈরি করতে পারেন বা থিম ভ্যারিয়েবল কাস্টমাইজ করতে পারেন।
  2. Customization: ExtJS এর কম্পোনেন্টের স্টাইল এবং আচরণ কাস্টমাইজ করতে CSS, SASS, LESS, এবং JavaScript ব্যবহার করা যায়।
  3. Custom Components: আপনি কাস্টম কম্পোনেন্ট তৈরি করতে পারেন এবং তা UI এর অংশ হিসেবে ব্যবহার করতে পারেন।
  4. Advanced Techniques: Ext.override এবং grid column renderer ব্যবহার করে আপনি ExtJS এর ডিফল্ট কম্পোনেন্টের আচরণ কাস্টমাইজ করতে পারেন।

ExtJS এর থিমিং এবং কাস্টমাইজেশন ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের ইউজার ইন্টারফেস এবং আচরণ পুরোপুরি কাস্টমাইজ করতে পারেন, যা আপনার প্রোজেক্টের জন্য উপযুক্ত হবে।

Content added By

ExtJS এর মধ্যে Theming কীভাবে কাজ করে?

Theming হল ExtJS-এ অ্যাপ্লিকেশনের ডিজাইন এবং লুক অ্যান্ড ফিল কাস্টমাইজ করার একটি শক্তিশালী বৈশিষ্ট্য। ExtJS বিভিন্ন বিল্ট-ইন থিম সরবরাহ করে, তবে আপনি কাস্টম থিম তৈরি করতে পারেন যা আপনার অ্যাপ্লিকেশনের ব্র্যান্ডিং এবং ডিজাইন স্টাইল অনুসারে উপযুক্ত। Theming ব্যবস্থাপনা অ্যাপ্লিকেশনকে আরও ইন্টারফেস এবং ইউজার ফ্রেন্ডলি করে তোলে।

এখানে, আমরা ExtJS থিমিং কীভাবে কাজ করে এবং কিভাবে একটি কাস্টম থিম তৈরি করতে হয়, তা নিয়ে আলোচনা করব।


১. ExtJS থিমের কাঠামো

ExtJS তে থিম দুটি ভাগে বিভক্ত:

  1. Built-in Themes: ExtJS বিভিন্ন ডিফল্ট থিম প্রদান করে, যেমন Neptune, Classic, Crisp, Dark, ইত্যাদি। এগুলি সাধারণ অ্যাপ্লিকেশনগুলির জন্য প্রস্তুত থিম যা বিভিন্ন ধরনের UI উপাদান (button, panel, grid, etc.) কাস্টমাইজ করে।
  2. Custom Themes: আপনি ExtJS-এ কাস্টম থিম তৈরি করতে পারেন যা আপনার অ্যাপ্লিকেশনের ব্র্যান্ডিং বা ডিজাইন অনুযায়ী সম্পূর্ণরূপে কাস্টমাইজড থাকবে। কাস্টম থিম তৈরি করতে আপনাকে থিমের স্টাইলস এবং CSS কাস্টমাইজ করতে হবে।

২. Built-in Themes ব্যবহার করা

ExtJS ডিফল্ট থিম ব্যবহারের জন্য আপনি Sencha Cmd টুল ব্যবহার করে অ্যাপ্লিকেশন সেটআপ করতে পারেন।

Built-in Theme ব্যবহারের উদাহরণ:

আপনি যদি ডিফল্ট Crisp থিম ব্যবহার করতে চান, তাহলে আপনার অ্যাপ্লিকেশন কনফিগারেশন ফাইলে এই কোডটি যুক্ত করতে হবে:

Ext.application({
    name: 'MyApp',
    appFolder: 'app',
    theme: 'crisp',  // Crisp theme ব্যবহার হচ্ছে
    launch: function() {
        Ext.create('Ext.panel.Panel', {
            title: 'Themed Panel',
            width: 400,
            height: 300,
            html: 'This panel uses the Crisp theme!',
            renderTo: Ext.getBody()
        });
    }
});

এখানে theme: 'crisp' এই প্রপার্টি দিয়ে আপনি Crisp থিমটি অ্যাপ্লিকেশনে অ্যাপ্লাই করেছেন।

অন্যান্য ডিফল্ট থিম:

  • Classic: পুরানো (প্রাচীন) ইউজার ইন্টারফেসের জন্য থিম।
  • Neptune: আধুনিক ও ফ্ল্যাট ডিজাইন থিম।
  • Crisp: ফ্ল্যাট ডিজাইন থিম, আধুনিক ইউজার ইন্টারফেসের জন্য।
  • Dark: ডার্ক থিম যা গ্রাফিক্যাল এবং মোডার্ন লুক প্রদান করে।

৩. Custom Theme তৈরি করা

আপনি যদি একটি কাস্টম থিম তৈরি করতে চান, তবে আপনাকে কিছু অতিরিক্ত স্টেপ অনুসরণ করতে হবে:

  1. Sencha Cmd ব্যবহার করে নতুন থিম তৈরি করুন।
  2. থিমের কনফিগারেশন এবং CSS স্টাইল কাস্টমাইজ করুন।

Step 1: Sencha Cmd দিয়ে Custom Theme তৈরি করা

প্রথমে, Sencha Cmd টুল ব্যবহার করে একটি নতুন থিম তৈরি করতে হবে।

sencha generate theme MyCustomTheme

এই কমান্ডটি MyCustomTheme নামে একটি নতুন থিম তৈরি করবে।

Step 2: থিম কনফিগারেশন এবং কাস্টম CSS

আপনার তৈরি করা থিম ফোল্ডারে গিয়ে, থিমের কনফিগারেশন ফাইল এবং CSS ফাইলগুলো কাস্টমাইজ করতে হবে।

  • MyCustomTheme/sass/var/overrides.scss ফাইলের মাধ্যমে আপনি CSS কাস্টমাইজ করতে পারেন।
  • এখানে আপনি বিভিন্ন কম্পোনেন্টের স্টাইল (যেমন button, panel, textfield, ইত্যাদি) কাস্টমাইজ করতে পারবেন।

উদাহরণ:

// Button এর কাস্টম স্টাইল
$button-background: #4CAF50;
$button-color: white;

button {
    background-color: $button-background;
    color: $button-color;
}

Step 3: থিম প্রস্তুত করা এবং চালানো

থিম কনফিগারেশন সম্পূর্ণ হলে, Sencha Cmd ব্যবহার করে থিম প্রস্তুত করতে হবে।

sencha package generate

এটি আপনার থিম প্রস্তুত করে এবং অ্যাপ্লিকেশন ফোল্ডারে থিম ফাইলগুলো অন্তর্ভুক্ত করবে।


৪. Custom Theme ব্যবহার করা

আপনি যে কাস্টম থিম তৈরি করেছেন, তা আপনার অ্যাপ্লিকেশনে ব্যবহার করতে হলে, অ্যাপ্লিকেশন কনফিগারেশনে theme প্রপার্টি ব্যবহার করে কাস্টম থিমটি অন্তর্ভুক্ত করতে হবে।

Ext.application({
    name: 'MyApp',
    appFolder: 'app',
    theme: 'MyCustomTheme',  // কাস্টম থিম ব্যবহার হচ্ছে
    launch: function() {
        Ext.create('Ext.panel.Panel', {
            title: 'Custom Themed Panel',
            width: 400,
            height: 300,
            html: 'This panel uses the custom theme!',
            renderTo: Ext.getBody()
        });
    }
});

এখানে, theme: 'MyCustomTheme' এই প্রপার্টি দিয়ে আপনি আপনার কাস্টম থিমটি অ্যাপ্লিকেশনে অ্যাপ্লাই করেছেন।


৫. Sencha Themer ব্যবহার করা

Sencha Themer হল একটি GUI টুল, যা ExtJS অ্যাপ্লিকেশনের জন্য থিম তৈরি ও কাস্টমাইজ করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি UI উপাদানগুলির লুক এবং ফিল পরিবর্তন করতে পারেন, যেমন বাটন, গ্রিড, প্যানেল ইত্যাদি, এবং কোড লেখার প্রয়োজন ছাড়াই থিম তৈরি করতে পারেন।

Sencha Themer দিয়ে থিম তৈরি করার প্রক্রিয়া:

  1. Sencha Themer ইনস্টল করুন।
  2. একটি নতুন থিম তৈরি করুন এবং কাস্টমাইজ করুন।
  3. থিমটি Sencha Cmd দিয়ে কম্পাইল করুন।

Sencha Themer আপনাকে একটি ইন্টারেকটিভ UI প্রদান করে, যেখানে আপনি বিভিন্ন থিম কাস্টমাইজ করতে পারবেন।


সারাংশ

  1. ExtJS Theming ব্যবহার করে আপনি সহজেই আপনার অ্যাপ্লিকেশনের ডিজাইন কাস্টমাইজ করতে পারেন, যেমন থিমের রং, টেক্সটফিল্ড, বাটন, প্যানেল ইত্যাদি।
  2. Built-in Themes যেমন Classic, Neptune, Crisp, এবং Dark বিভিন্ন ধরণের স্টাইল প্রিভিউ প্রদান করে, যা অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহার করা যেতে পারে।
  3. Custom Themes তৈরি করে, আপনি আপনার অ্যাপ্লিকেশনের ব্র্যান্ডিং অনুযায়ী থিম কাস্টমাইজ করতে পারেন। এটি Sencha Cmd এবং Sencha Themer ব্যবহার করে করা যায়।
  4. Sencha Cmd এবং Sencha Themer এর মাধ্যমে থিম তৈরি, কাস্টমাইজ, এবং ডিপ্লয় করা যেতে পারে।

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

Content added By

Custom CSS এবং SASS ব্যবহার করে থিমিং

ExtJS একটি শক্তিশালী ফ্রন্টএন্ড ফ্রেমওয়ার্ক, যা কাস্টম থিম তৈরি করার জন্য CSS এবং SASS সাপোর্ট প্রদান করে। থিমিং ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের ডিজাইন এবং ভিজ্যুয়াল স্টাইল কাস্টমাইজ করতে পারেন। থিমিং সিস্টেমটি ব্যবহার করে, আপনি অ্যাপ্লিকেশনের ভিজ্যুয়াল উপাদানগুলো যেমন রঙ, টাইপোগ্রাফি, বর্ডার, প্যাডিং ইত্যাদি কাস্টমাইজ করতে পারবেন। CSS এবং SASS ব্যবহার করে থিম তৈরি করা, বিশেষত বড় অ্যাপ্লিকেশনে স্টাইলিং নিয়ন্ত্রণের ক্ষেত্রে একটি কার্যকরী উপায়।


১. ExtJS থিমিং এবং কাস্টম CSS

ExtJS ফ্রেমওয়ার্কের জন্য কাস্টম CSS ব্যবহার করে থিম তৈরি করা খুবই সহজ। ExtJS তে ext-theme-classic বা ext-theme-material এর মতো ডিফল্ট থিম পাওয়া যায়, তবে আপনি নিজস্ব থিম তৈরি করতে পারেন যা আপনার অ্যাপ্লিকেশনের ডিজাইনের সাথে মিলে যাবে।

Custom CSS ব্যবহার করে থিমিং:

  1. কাস্টম CSS ফাইল তৈরি করা: আপনার অ্যাপ্লিকেশনে একটি নতুন CSS ফাইল তৈরি করুন যেখানে আপনি বিভিন্ন UI কম্পোনেন্টের স্টাইল কাস্টমাইজ করবেন।

    custom-theme.css উদাহরণ:

    .x-panel-body {
        background-color: #f4f4f4; /* প্যানেল ব্যাকগ্রাউন্ড */
    }
    
    .x-btn {
        background-color: #007BFF; /* বাটনের ব্যাকগ্রাউন্ড রঙ */
        color: white; /* টেক্সট রঙ */
        border-radius: 5px; /* বর্ডার রাউন্ডিং */
    }
    
    .x-btn:hover {
        background-color: #0056b3; /* হোভার রঙ */
    }
    
    .x-field-label {
        font-weight: bold; /* ইনপুট ফিল্ডের লেবেল স্টাইল */
        color: #333;
    }
    
  2. CSS ফাইলকে লিঙ্ক করা: আপনার index.html ফাইলে CSS ফাইলটিকে লিঙ্ক করুন।

    <link rel="stylesheet" type="text/css" href="css/custom-theme.css">
    
  3. কাস্টম ক্লাস ব্যবহার করা: আপনার কম্পোনেন্টের স্টাইল কাস্টমাইজ করতে আপনি কাস্টম CSS ক্লাসগুলি ব্যবহার করতে পারেন।

    Ext.create('Ext.button.Button', {
        text: 'Click Me',
        cls: 'x-btn custom-button', // কাস্টম ক্লাস যোগ করা
        renderTo: Ext.getBody()
    });
    

২. SASS ব্যবহার করে থিমিং

SASS (Syntactically Awesome Stylesheets) হল একটি শক্তিশালী CSS প্রিপ্রসেসর যা স্টাইলশিট লেখার সময় আরও কার্যকরী এবং মডুলার কোড তৈরি করতে সাহায্য করে। ExtJS SASS ব্যবহার করে থিম তৈরি করার জন্য অনেক উপায় প্রদান করে।

SASS সেটআপ এবং কাস্টম থিম তৈরি করা

  1. SASS ফাইল সেটআপ: প্রথমে, আপনাকে SASS ফাইলগুলির জন্য একটি কনফিগারেশন তৈরি করতে হবে। ext.scss ফাইল তৈরি করুন যেখানে ExtJS এর থিম কাস্টমাইজ করা হবে।

    ext.scss ফাইলের উদাহরণ:

    // Import ExtJS default variables
    @import 'extjs/theme-material/resources/theme-material-all';
    
    // কাস্টম রঙ এবং অন্যান্য ভ্যারিয়েবল সেট করুন
    $primary-color: #FF5733; // পছন্দসই প্রাইমারি রঙ
    $secondary-color: #333333; // সেকেন্ডারি রঙ
    
    // UI কম্পোনেন্টের কাস্টমাইজেশন
    .x-btn {
        background-color: $primary-color;
        color: white;
        border-radius: 4px;
    
        &:hover {
            background-color: darken($primary-color, 10%);
        }
    }
    
    .x-panel-body {
        background-color: lighten($secondary-color, 30%);
    }
    
  2. SASS কম্পাইল করা: SASS কোডকে CSS তে রূপান্তর করতে আপনাকে SASS কম্পাইল করতে হবে। আপনি Node.js, Gulp, বা Webpack ব্যবহার করে এটি করতে পারেন।

    যদি আপনি Node.js ব্যবহার করেন:

    • প্রথমে node-sass ইনস্টল করুন:

      npm install -g node-sass
      
    • এরপর SASS ফাইলটি CSS এ কম্পাইল করুন:

      node-sass ext.scss custom-theme.css
      
  3. CSS লোড করা: আপনার অ্যাপ্লিকেশন index.html ফাইলে কম্পাইল করা CSS ফাইলটি লোড করুন:

    <link rel="stylesheet" type="text/css" href="css/custom-theme.css">
    

৩. ExtJS থিম কাস্টমাইজেশন এবং ExtJS থিম জেনারেটর

ExtJS থিম কাস্টমাইজ করার জন্য Sencha Cmd ব্যবহার করা যায়। Sencha Cmd একটি শক্তিশালী টুল যা ExtJS অ্যাপ্লিকেশন তৈরি, কম্পাইল এবং ডিপ্লয় করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি কাস্টম থিম তৈরি করতে পারেন এবং সেটি এক্সটিজেএস প্রজেক্টে ব্যবহার করতে পারবেন।

  1. Sencha Cmd দিয়ে থিম তৈরি: আপনি Sencha Cmd ব্যবহার করে একটি কাস্টম থিম তৈরি করতে পারেন। এটি আপনাকে থিমের জন্য প্রাথমিক ফাইল এবং কাঠামো প্রদান করবে।

    কাস্টম থিম তৈরি করতে কমান্ড:

    sencha generate theme MyCustomTheme
    
  2. থিম কনফিগারেশন পরিবর্তন: কাস্টম থিমের জন্য সিএসএস বা সাস ফাইলগুলি সম্পাদনা করুন এবং আপনার প্রজেক্টে ব্যবহার করুন।

সারাংশ

ExtJS থিমিং একটি অত্যন্ত শক্তিশালী এবং কাস্টমাইজযোগ্য সিস্টেম, যা CSS এবং SASS এর মাধ্যমে আপনার অ্যাপ্লিকেশনের ডিজাইন এবং ইউজার ইন্টারফেস স্টাইল কাস্টমাইজ করতে সহায়ক। CSS ফাইল ব্যবহার করে সহজেই থিম কাস্টমাইজ করা যায়, তবে SASS ব্যবহার করে আরও শক্তিশালী এবং মডুলার থিম তৈরি করা যায়, যা বড় অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যায়। Sencha Cmd ব্যবহার করে আপনি কাস্টম থিম তৈরি এবং রক্ষণাবেক্ষণ করতে পারেন।

Content added By

Pre-built Theme ব্যবহার এবং কাস্টম থিম তৈরি করা

ExtJS একটি শক্তিশালী ফ্রেমওয়ার্ক যা উন্নত ইউজার ইন্টারফেস (UI) তৈরির জন্য ব্যবহৃত হয়। এর মধ্যে একটি দুর্দান্ত থিমিং সিস্টেম রয়েছে যা ডেভেলপারদের তাদের অ্যাপ্লিকেশনটির চেহারা ও অনুভূতি কাস্টমাইজ করতে দেয়। ExtJS আপনাকে pre-built themes ব্যবহার করার সুবিধা দেয় এবং আপনি চাইলে custom themes তৈরি করেও অ্যাপ্লিকেশনটির ডিজাইন কাস্টমাইজ করতে পারেন।


Pre-built Theme ব্যবহার

ExtJS তে অনেক প্রি-বিল্ট থিম উপলব্ধ রয়েছে, যা আপনি সরাসরি ব্যবহার করতে পারেন। সাধারণত, Sencha Themer এবং ExtJS Theme ডেভেলপমেন্ট টুলস ব্যবহার করে থিম পরিবর্তন করা হয়।

Pre-built Themes এর উদাহরণ:

  1. classic থিম: একটি প্রথাগত ডেস্কটপ-ভিত্তিক ডিজাইন।
  2. modern থিম: আধুনিক ডিজাইন যা মোবাইল এবং ট্যাবলেট-ভিত্তিক ইউজার ইন্টারফেসের জন্য উপযুক্ত।

Pre-built Theme ব্যবহার করার জন্য কনফিগারেশন:

app.js ফাইলে, আপনি সহজেই থিম সিলেক্ট করতে পারেন:

Ext.application({
    name: 'MyApp',
    requires: ['Ext.MessageBox'],
    
    // থিম নির্বাচন করা
    theme: 'classic', // বা 'modern'
    
    launch: function() {
        Ext.create('Ext.MessageBox', {
            title: 'Hello ExtJS!',
            message: 'This is a pre-built theme example.',
            buttons: Ext.MessageBox.OK
        });
    }
});

এখানে, theme কনফিগারেশনে "classic" বা "modern" থিম ব্যবহার করা হয়েছে। ExtJS ফ্রেমওয়ার্ক এই থিমগুলো সরাসরি অ্যাপ্লিকেশনে প্রয়োগ করবে।


কাস্টম থিম তৈরি করা

ExtJS তে কাস্টম থিম তৈরি করার জন্য SASS (Syntactically Awesome Stylesheets) ব্যবহার করা হয়। SASS ব্যবহার করে আপনি থিমের স্টাইল কাস্টমাইজ করতে পারেন, যেমন সঠিক রং, টাইপোগ্রাফি, বর্ডার, শ্যাডো ইত্যাদি।

কাস্টম থিম তৈরি করার ধাপ:

  1. Sencha Cmd ইনস্টল করা: কাস্টম থিম তৈরি করার জন্য Sencha Cmd ইনস্টল করা প্রয়োজন। এটি থিম তৈরির জন্য প্রয়োজনীয় সরঞ্জাম সরবরাহ করে।
  2. প্রকল্প তৈরি এবং থিম কনফিগারেশন: আপনি Sencha Cmd এর মাধ্যমে একটি নতুন প্রকল্প তৈরি করতে পারেন এবং সেখানে আপনার কাস্টম থিম কনফিগার করতে পারবেন।

Sencha Cmd দিয়ে প্রজেক্ট তৈরি:

sencha generate app MyApp /path/to/myapp
  1. কাস্টম থিম ফোল্ডার তৈরি করা: আপনি কাস্টম থিম ফোল্ডার তৈরি করতে পারেন এবং সেখানে SASS ফাইলগুলি রাখবেন। উদাহরণস্বরূপ:

কাস্টম থিম ফোল্ডার স্ট্রাকচার:

/app
  /sass
    /themes
      /myCustomTheme
        _variables.scss
        _buttons.scss
        _layout.scss
  1. SASS ফাইল কনফিগারেশন: আপনি কাস্টম স্টাইল এবং ভ্যারিয়েবল কনফিগার করতে পারবেন SASS ফাইলগুলোতে। উদাহরণস্বরূপ, একটি কাস্টম রং পরিবর্তন করার জন্য:

_variables.scss:

$primary-color: #4CAF50; // কাস্টম রঙ নির্ধারণ
$secondary-color: #FF5722; // সেকেন্ডারি রঙ

_buttons.scss:

.x-btn {
    background-color: $primary-color;
    color: white;
}
  1. কাস্টম থিম তৈরি করা: কাস্টম থিম তৈরি করার জন্য sencha কমান্ড ব্যবহার করতে হবে। এটি SASS ফাইলগুলি কম্পাইল করে এবং একটি .css ফাইল তৈরি করবে।

Sencha Cmd দিয়ে থিম তৈরি:

sencha generate theme myCustomTheme
  1. অ্যাপ্লিকেশনে কাস্টম থিম প্রয়োগ: তৈরি করা কাস্টম থিম আপনার অ্যাপ্লিকেশনে প্রয়োগ করতে, app.json ফাইলে থিমটি রেফারেন্স করতে হবে।

app.json ফাইলে কাস্টম থিম প্রয়োগ:

{
    "name": "MyApp",
    "theme": "myCustomTheme",
    "requires": [
        "Ext.MessageBox"
    ],
    "launch": function () {
        Ext.create('Ext.MessageBox', {
            title: 'Custom Theme Example',
            message: 'This is a custom theme example using SASS.',
            buttons: Ext.MessageBox.OK
        });
    }
}

এখানে, theme কনফিগারেশনে "myCustomTheme" রেফারেন্স করা হয়েছে, যা পূর্বে তৈরি করা কাস্টম থিম।


Sencha Themer ব্যবহার করে কাস্টম থিম তৈরি

Sencha Themer হল একটি গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) টুল যা ডেভেলপারদের এবং ডিজাইনারদের ExtJS অ্যাপ্লিকেশনের জন্য কাস্টম থিম ডিজাইন করতে সাহায্য করে। Sencha Themer ব্যবহার করে আপনি সহজেই রং, স্টাইল, এবং থিমের অন্যান্য বৈশিষ্ট্য কাস্টমাইজ করতে পারেন।

  1. Sencha Themer ইনস্টল করুন: Sencha Themer ডাউনলোড পেজ থেকে Sencha Themer ডাউনলোড এবং ইনস্টল করুন।
  2. Sencha Themer ব্যবহার করা:
    • Themer অ্যাপ্লিকেশন ওপেন করে New Theme তৈরি করুন।
    • Pre-built themes থেকে একটি থিম বেছে নিন এবং সেটি কাস্টমাইজ করুন (রং, ফন্ট, শ্যাডো, ব্যাকগ্রাউন্ড ইত্যাদি)।
    • থিম তৈরি করার পর, এটি ExtJS অ্যাপ্লিকেশনে প্রয়োগ করতে পারবেন।

সারাংশ

  • Pre-built themes এর মাধ্যমে আপনি খুব সহজেই ExtJS অ্যাপ্লিকেশনে প্রি-কনফিগারড থিম ব্যবহার করতে পারেন যেমন classic এবং modern থিম।
  • Custom themes তৈরি করার জন্য SASS ব্যবহার করতে হয়, যেখানে আপনি কাস্টম রং, টাইপোগ্রাফি, বর্ডার ইত্যাদি কাস্টমাইজ করতে পারেন।
  • Sencha Cmd এবং Sencha Themer এর মাধ্যমে আপনি কাস্টম থিম তৈরি এবং ব্যবহারের জন্য বিভিন্ন টুলস পেতে পারেন।
  • SASS এর মাধ্যমে কাস্টম থিম তৈরি করলে আপনি অ্যাপ্লিকেশনের ডিজাইনকে আপনার প্রয়োজন অনুসারে সম্পূর্ণভাবে কাস্টমাইজ করতে পারেন।

এভাবে, ExtJS তে থিমিং ব্যবস্থার মাধ্যমে আপনার অ্যাপ্লিকেশনকে আরও সুন্দর, ইন্টারেক্টিভ এবং ব্যবহারকারী-বান্ধব করা সম্ভব।

Content added By

Responsive Design এবং Media Queries কনফিগার করা

ExtJS একটি শক্তিশালী ফ্রন্টএন্ড ফ্রেমওয়ার্ক যা রেসপন্সিভ ডিজাইন এবং মিডিয়া কুয়েরি (Media Queries) সমর্থন করে। এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনকে বিভিন্ন ডিভাইস এবং স্ক্রীন সাইজের জন্য অটোমেটিকভাবে রিসাইজ এবং অ্যাডজাস্ট করতে পারেন। রেসপন্সিভ ডিজাইন ফিচারের মাধ্যমে, ExtJS অ্যাপ্লিকেশনগুলো মোবাইল, ট্যাবলেট এবং ডেস্কটপ প্ল্যাটফর্মের জন্য উপযুক্ত হয়ে ওঠে।


১. Responsive Design (রেসপন্সিভ ডিজাইন)

রেসপন্সিভ ডিজাইন হল এমন একটি ডিজাইন কৌশল, যেখানে ওয়েব পেজ বা অ্যাপ্লিকেশনটি বিভিন্ন স্ক্রীন সাইজ এবং রেজোলিউশনে ভালোভাবে কাজ করে। ExtJS তে, responsiveConfig এবং responsive কনফিগারেশন ব্যবহার করে অ্যাপ্লিকেশন তৈরি করা যায় যা বিভিন্ন ডিভাইসে সঠিকভাবে কাজ করবে।

responsiveConfig কনফিগারেশন ব্যবহার

responsiveConfig একটি কনফিগারেশন অবজেক্ট যা আপনার কম্পোনেন্ট বা প্যানেলের ডিজাইনকে স্ক্রীনের সাইজ অনুসারে পরিবর্তন করতে সাহায্য করে।

ResponsiveConfig উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Responsive Panel',
    width: 500,
    height: 300,
    html: 'Resize the window to see the panel resize!',
    responsiveConfig: {
        'width < 500': { 
            html: 'This panel is on a small screen.' 
        },
        'width >= 500': { 
            html: 'This panel is on a large screen.' 
        }
    },
    renderTo: Ext.getBody()
});

এখানে:

  • responsiveConfig: স্ক্রীন সাইজের ভিত্তিতে কনফিগারেশন আপডেট করা হচ্ছে।
  • width < 500: যদি স্ক্রীন এর প্রস্থ 500px এর কম হয়, তাহলে প্যানেলের HTML আপডেট হবে।
  • width >= 500: যদি স্ক্রীন এর প্রস্থ 500px বা তার বেশি হয়, তাহলে অন্য HTML দেখানো হবে।

responsive প্রপার্টি উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Responsive Layout Example',
    width: 400,
    height: 300,
    layout: 'vbox',
    items: [{
        xtype: 'panel',
        html: 'This panel adjusts its content based on screen size.',
        flex: 1
    }],
    responsive: true, // এটি প্যানেলকে রেসপন্সিভ করে তোলে
    renderTo: Ext.getBody()
});

responsive: true: এটি কম্পোনেন্ট বা প্যানেলকে রেসপন্সিভ করে তোলে, যা স্ক্রীন সাইজ পরিবর্তিত হলে ডাইনামিকভাবে কন্টেন্ট অ্যাডজাস্ট করবে।


২. Media Queries কনফিগার করা

Media Queries হল CSS এর একটি বৈশিষ্ট্য, যা স্ক্রীনের সাইজ, রেজোলিউশন, অরিয়েন্টেশন ইত্যাদির উপর ভিত্তি করে স্টাইল পরিবর্তন করার অনুমতি দেয়। ExtJS তে আপনি মিডিয়া কুয়েরি কনফিগারেশন ব্যবহার করে স্ক্রীন সাইজ অনুসারে উপাদানগুলির স্টাইল এবং আচরণ নিয়ন্ত্রণ করতে পারেন।

Media Queries উদাহরণ:

Ext.create('Ext.panel.Panel', {
    title: 'Media Queries Example',
    width: 600,
    height: 400,
    html: 'Resize the window to see the panel resize!',
    cls: 'media-query-panel',
    renderTo: Ext.getBody()
});

// CSS (মিডিয়া কুয়েরি কনফিগারেশন):
<style>
    .media-query-panel {
        padding: 20px;
    }

    /* ছোট স্ক্রীন সাইজের জন্য */
    @media (max-width: 600px) {
        .media-query-panel {
            background-color: lightblue;
            font-size: 12px;
        }
    }

    /* বড় স্ক্রীন সাইজের জন্য */
    @media (min-width: 601px) {
        .media-query-panel {
            background-color: lightgreen;
            font-size: 16px;
        }
    }
</style>

এখানে:

  • @media (max-width: 600px): এটি ছোট স্ক্রীনের জন্য মিডিয়া কুয়েরি।
  • @media (min-width: 601px): এটি বড় স্ক্রীনের জন্য মিডিয়া কুয়েরি।

এই CSS কনফিগারেশনটি প্যানেলের ব্যাকগ্রাউন্ড এবং ফন্ট সাইজ পরিবর্তন করবে, যখন স্ক্রীন সাইজ 600px এর নিচে বা উপরে যাবে।


৩. ExtJS-এ Responsive Layout ব্যবহার

ExtJS এ Responsive Layout কনফিগারেশন ব্যবহার করে একটি কম্পোনেন্টের সাইজ এবং অবস্থান স্ক্রীনের আকার অনুসারে পরিবর্তিত করা যেতে পারে। responsive এবং responsiveConfig কনফিগারেশন ব্যবহার করে বিভিন্ন স্ক্রীনে কম্পোনেন্টের আচরণ পরিবর্তন করতে পারেন।

Responsive Layout উদাহরণ:

Ext.create('Ext.container.Viewport', {
    layout: 'hbox',
    items: [{
        xtype: 'panel',
        title: 'Panel 1',
        html: 'This is the first panel.',
        width: 300,
        responsiveConfig: {
            'width < 500': {
                html: 'Panel 1 - Small Screen'
            },
            'width >= 500': {
                html: 'Panel 1 - Large Screen'
            }
        }
    }, {
        xtype: 'panel',
        title: 'Panel 2',
        html: 'This is the second panel.',
        width: 300,
        responsiveConfig: {
            'width < 500': {
                html: 'Panel 2 - Small Screen'
            },
            'width >= 500': {
                html: 'Panel 2 - Large Screen'
            }
        }
    }]
});

এখানে:

  • দুটি প্যানেল responsiveConfig এর মাধ্যমে রেসপন্সিভভাবে কনফিগার করা হয়েছে। স্ক্রীন সাইজ অনুযায়ী এই প্যানেলগুলির কন্টেন্ট এবং আকার পরিবর্তিত হবে।

৪. Responsive Grid

Responsive Grid ব্যবহারের মাধ্যমে, আপনি ExtJS গ্রিডকে বিভিন্ন স্ক্রীন সাইজ অনুসারে অ্যাডজাস্ট করতে পারেন।

Ext.create('Ext.grid.Panel', {
    title: 'Responsive Grid Example',
    store: {
        fields: ['name', 'email'],
        data: [
            {name: 'John', email: 'john@example.com'},
            {name: 'Jane', email: 'jane@example.com'}
        ]
    },
    columns: [{
        text: 'Name',
        dataIndex: 'name',
        flex: 1
    }, {
        text: 'Email',
        dataIndex: 'email',
        flex: 2
    }],
    responsiveConfig: {
        'width < 600': {
            columns: [{
                text: 'Name',
                dataIndex: 'name',
                flex: 2
            }]
        },
        'width >= 600': {
            columns: [{
                text: 'Name',
                dataIndex: 'name',
                flex: 1
            }, {
                text: 'Email',
                dataIndex: 'email',
                flex: 2
            }]
        }
    },
    renderTo: Ext.getBody()
});

এখানে, responsiveConfig এর মাধ্যমে স্ক্রীনের প্রস্থ অনুসারে গ্রিডের কলামগুলির সংখ্যা পরিবর্তিত হচ্ছে।


সারাংশ

  1. Responsive Design: responsiveConfig এবং responsive কনফিগারেশন ব্যবহার করে কম্পোনেন্টগুলিকে স্ক্রীনের আকার অনুযায়ী পরিবর্তিত করা যায়।
  2. Media Queries: CSS মিডিয়া কুয়েরি ব্যবহার করে স্ক্রীনের সাইজ অনুসারে স্টাইল পরিবর্তন করা যায়।
  3. Responsive Layout: স্ক্রীনের আকার অনুযায়ী লেআউট এবং কম্পোনেন্টের আচরণ পরিবর্তন করা হয়।
  4. Responsive Grid: গ্রিডের কলাম এবং অন্যান্য উপাদান স্ক্রীনের আকার অনুযায়ী পরিবর্তিত হয়।

এই ফিচারগুলির মাধ্যমে, আপনি ExtJS এ একটি রেসপন্সিভ, ডিভাইস-বান্ধব এবং স্কেলেবল অ্যাপ্লিকেশন তৈরি করতে পারবেন যা বিভিন্ন স্ক্রীন সাইজে ভালভাবে কাজ করবে।

Content added By
Promotion