தமிழ்

டைனமிக் தீம்கள், ரெஸ்பான்சிவ் டிசைன்கள், சிக்கலான கணக்கீடுகள் ஆகியவற்றை உருவாக்க மற்றும் உங்கள் ஸ்டைல்ஷீட்களின் பராமரிப்பை மேம்படுத்த CSS custom properties (மாறிகள்) பயன்படுத்தி மேம்பட்ட நுட்பங்களை ஆராயுங்கள்.

CSS Custom Properties: டைனமிக் ஸ்டைலிங்கிற்கான மேம்பட்ட பயன்பாட்டு வழக்குகள்

CSS Custom Properties, CSS மாறிகள் என்றும் அழைக்கப்படுகின்றன, நாம் ஸ்டைல்ஷீட்களை எழுதும் மற்றும் பராமரிக்கும் முறையை புரட்சிகரமாக மாற்றியுள்ளன. அவை மீண்டும் பயன்படுத்தக்கூடிய மதிப்புகளை வரையறுக்கவும், டைனமிக் தீம்களை உருவாக்கவும், மற்றும் சிக்கலான கணக்கீடுகளை நேரடியாக CSS-க்குள் செய்யவும் ஒரு சக்திவாய்ந்த வழியை வழங்குகின்றன. அடிப்படை பயன்பாடு நன்கு ஆவணப்படுத்தப்பட்டிருந்தாலும், இந்த வழிகாட்டி உங்கள் முன்முனை மேம்பாட்டுப் பணி ஓட்டத்தை கணிசமாக மேம்படுத்தக்கூடிய மேம்பட்ட நுட்பங்களை ஆராய்கிறது. CSS Custom Properties-இன் முழு திறனையும் நீங்கள் பயன்படுத்திக்கொள்ள உதவும் வகையில், நிஜ-உலக எடுத்துக்காட்டுகளை ஆராய்ந்து, செயல்படுத்தக்கூடிய நுண்ணறிவுகளை வழங்குவோம்.

CSS Custom Properties-ஐப் புரிந்துகொள்ளுதல்

மேம்பட்ட பயன்பாட்டு வழக்குகளுக்குள் செல்வதற்கு முன், அடிப்படைகளை சுருக்கமாக நினைவு கூர்வோம்:

மேம்பட்ட பயன்பாட்டு வழக்குகள்

1. டைனமிக் தீமிங்

CSS Custom Properties-இன் மிகவும் ஈர்க்கக்கூடிய பயன்பாட்டு வழக்குகளில் ஒன்று டைனமிக் தீம்களை உருவாக்குவது. வெவ்வேறு தீம்களுக்கு (எ.கா., லைட் மற்றும் டார்க்) பல ஸ்டைல்ஷீட்களைப் பராமரிப்பதற்குப் பதிலாக, தீம்-குறிப்பிட்ட மதிப்புகளை custom properties ஆக வரையறுத்து, ஜாவாஸ்கிரிப்ட் அல்லது CSS மீடியா வினவல்களைப் பயன்படுத்தி அவற்றுக்கிடையே மாறலாம்.

எடுத்துக்காட்டு: லைட் மற்றும் டார்க் தீம் மாற்றுதல்

CSS Custom Properties மற்றும் ஜாவாஸ்கிரிப்ட் பயன்படுத்தி லைட் மற்றும் டார்க் தீம் மாற்றுவதை எவ்வாறு செயல்படுத்துவது என்பதற்கான ஒரு எளிய எடுத்துக்காட்டு இங்கே:

CSS:


:root {
  --bg-color: #ffffff;
  --text-color: #000000;
  --link-color: #007bff;
}

[data-theme="dark"] {
  --bg-color: #333333;
  --text-color: #ffffff;
  --link-color: #66b3ff;
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

a {
  color: var(--link-color);
}

HTML:


<button id="theme-toggle">Toggle Theme</button>
<div class="content">
  <h1>My Website</h1>
  <p>Some content here.</p>
  <a href="#">A link</a>
</div>

JavaScript:


const themeToggle = document.getElementById('theme-toggle');
const body = document.body;

themeToggle.addEventListener('click', () => {
  if (body.dataset.theme === 'dark') {
    body.dataset.theme = 'light';
  } else {
    body.dataset.theme = 'dark';
  }
});

இந்த எடுத்துக்காட்டில், :root சூடோ-கிளாஸில் பின்னணி நிறம், உரை நிறம் மற்றும் இணைப்பு நிறம் ஆகியவற்றிற்கான இயல்புநிலை மதிப்புகளை வரையறுக்கிறோம். body உறுப்பில் உள்ள data-theme பண்புக்கூறு "dark" என அமைக்கப்பட்டால், அதனுடன் தொடர்புடைய custom property மதிப்புகள் பயன்படுத்தப்பட்டு, திறம்பட டார்க் தீமிற்கு மாறும்.

இந்த அணுகுமுறை மிகவும் பராமரிக்கக்கூடியது, ஏனெனில் தீமின் தோற்றத்தை மாற்ற நீங்கள் custom property மதிப்புகளை மட்டும் புதுப்பித்தால் போதும். இது பல வண்ணத் திட்டங்கள் அல்லது பயனர் வரையறுக்கப்பட்ட தீம்களை ஆதரிப்பது போன்ற மிகவும் சிக்கலான தீமிங் சூழ்நிலைகளுக்கும் அனுமதிக்கிறது.

தீமிங்கிற்கான உலகளாவிய கருத்தாய்வுகள்

உலகளாவிய பார்வையாளர்களுக்காக தீம்களை வடிவமைக்கும்போது, இவற்றைக் கவனியுங்கள்:

2. Custom Properties உடன் ரெஸ்பான்சிவ் டிசைன்

CSS Custom Properties பல்வேறு திரை அளவுகளுக்கு வெவ்வேறு மதிப்புகளை வரையறுக்க அனுமதிப்பதன் மூலம் ரெஸ்பான்சிவ் டிசைனை எளிதாக்கலாம். உங்கள் ஸ்டைல்ஷீட் முழுவதும் மீடியா வினவல்களை மீண்டும் மீண்டும் செய்வதற்குப் பதிலாக, நீங்கள் ரூட் மட்டத்தில் சில custom properties-ஐப் புதுப்பிக்கலாம், மேலும் அந்த மாற்றங்கள் அந்த பண்புகளைப் பயன்படுத்தும் அனைத்து உறுப்புகளுக்கும் கீழ்நோக்கிப் பரவும்.

எடுத்துக்காட்டு: ரெஸ்பான்சிவ் எழுத்துரு அளவுகள்

CSS Custom Properties பயன்படுத்தி ரெஸ்பான்சிவ் எழுத்துரு அளவுகளை எவ்வாறு செயல்படுத்துவது என்பது இங்கே:


:root {
  --base-font-size: 16px;
}

h1 {
  font-size: calc(var(--base-font-size) * 2);
}

p {
  font-size: var(--base-font-size);
}

@media (max-width: 768px) {
  :root {
    --base-font-size: 14px;
  }
}

@media (max-width: 480px) {
  :root {
    --base-font-size: 12px;
  }
}

இந்த எடுத்துக்காட்டில், நாம் ஒரு --base-font-size custom property-ஐ வரையறுத்து, அதைப் பயன்படுத்தி வெவ்வேறு உறுப்புகளுக்கான எழுத்துரு அளவுகளைக் கணக்கிடுகிறோம். திரையின் அகலம் 768px-ஐ விடக் குறைவாக இருக்கும்போது, --base-font-size 14px ஆகப் புதுப்பிக்கப்படுகிறது, மேலும் அதைப் பொறுத்து இருக்கும் அனைத்து உறுப்புகளின் எழுத்துரு அளவுகளும் தானாகவே சரிசெய்யப்படுகின்றன. இதேபோல், 480px-ஐ விட சிறிய திரைகளுக்கு, --base-font-size மேலும் 12px ஆகக் குறைக்கப்படுகிறது.

இந்த அணுகுமுறை வெவ்வேறு திரை அளவுகளில் சீரான அச்சுக்கலையைப் பராமரிப்பதை எளிதாக்குகிறது. நீங்கள் அடிப்படை எழுத்துரு அளவை எளிதாக சரிசெய்யலாம் மற்றும் அனைத்து பெறப்பட்ட எழுத்துரு அளவுகளும் தானாகவே புதுப்பிக்கப்படும்.

ரெஸ்பான்சிவ் டிசைனுக்கான உலகளாவிய கருத்தாய்வுகள்

உலகளாவிய பார்வையாளர்களுக்காக ரெஸ்பான்சிவ் வலைத்தளங்களை வடிவமைக்கும்போது, இவற்றை மனதில் கொள்ளுங்கள்:

3. calc() உடன் சிக்கலான கணக்கீடுகள்

CSS Custom Properties-ஐ calc() செயல்பாட்டுடன் இணைத்து சிக்கலான கணக்கீடுகளை நேரடியாக CSS-க்குள் செய்யலாம். இது டைனமிக் தளவமைப்புகளை உருவாக்க, திரை பரிமாணங்களின் அடிப்படையில் உறுப்பு அளவுகளை சரிசெய்ய அல்லது சிக்கலான அனிமேஷன்களை உருவாக்க பயனுள்ளதாக இருக்கும்.

எடுத்துக்காட்டு: டைனமிக் கிரிட் லேஅவுட்

ஒரு custom property மூலம் நெடுவரிசைகளின் எண்ணிக்கை தீர்மானிக்கப்படும் டைனமிக் கிரிட் லேஅவுட்டை எவ்வாறு உருவாக்குவது என்பது இங்கே:


:root {
  --num-columns: 3;
  --grid-gap: 10px;
}

.grid-container {
  display: grid;
  grid-template-columns: repeat(var(--num-columns), minmax(100px, 1fr));
  grid-gap: var(--grid-gap);
}

.grid-item {
  padding: 20px;
  background-color: #f0f0f0;
}

இந்த எடுத்துக்காட்டில், --num-columns custom property கிரிட் லேஅவுட்டில் உள்ள நெடுவரிசைகளின் எண்ணிக்கையை தீர்மானிக்கிறது. grid-template-columns property, குறிப்பிட்ட எண்ணிக்கையிலான நெடுவரிசைகளை உருவாக்க repeat() செயல்பாட்டைப் பயன்படுத்துகிறது, ஒவ்வொன்றும் குறைந்தபட்சம் 100px அகலம் மற்றும் அதிகபட்சம் 1fr (பின்ன அலகு) அகலம் கொண்டது. --grid-gap custom property கிரிட் உருப்படிகளுக்கு இடையிலான இடைவெளியை வரையறுக்கிறது.

--num-columns custom property-ஐப் புதுப்பிப்பதன் மூலம் நீங்கள் எளிதாக நெடுவரிசைகளின் எண்ணிக்கையை மாற்றலாம், மேலும் கிரிட் லேஅவுட் தானாகவே அதற்கேற்ப சரிசெய்யப்படும். திரை அளவிற்கு ஏற்ப நெடுவரிசைகளின் எண்ணிக்கையை மாற்ற மீடியா வினவல்களையும் பயன்படுத்தலாம், இது ஒரு ரெஸ்பான்சிவ் கிரிட் லேஅவுட்டை உருவாக்குகிறது.

எடுத்துக்காட்டு: சதவீத அடிப்படையிலான ஒளிபுகாநிலை (Opacity)

ஒரு சதவீத மதிப்பின் அடிப்படையில் ஒளிபுகாநிலையைக் கட்டுப்படுத்த custom properties-ஐயும் பயன்படுத்தலாம்:


:root {
    --opacity-percentage: 50;
}

.element {
    opacity: calc(var(--opacity-percentage) / 100);
}

இது ஒரு சதவீதத்தைக் குறிக்கும் ஒற்றை மாறியுடன் ஒளிபுகாநிலையை சரிசெய்ய உங்களை அனுமதிக்கிறது, இது வாசிப்புத்திறன் மற்றும் பராமரிப்பை மேம்படுத்துகிறது.

4. கூறு ஸ்டைலிங்கை மேம்படுத்துதல்

மீண்டும் பயன்படுத்தக்கூடிய மற்றும் உள்ளமைக்கக்கூடிய UI கூறுகளை உருவாக்குவதற்கு Custom properties விலைமதிப்பற்றவை. ஒரு கூறின் தோற்றத்தின் பல்வேறு அம்சங்களுக்கு custom properties-ஐ வரையறுப்பதன் மூலம், கூறின் மைய CSS-ஐ மாற்றாமல் அதன் ஸ்டைலிங்கை எளிதாகத் தனிப்பயனாக்கலாம்.

எடுத்துக்காட்டு: பட்டன் கூறு

CSS Custom Properties பயன்படுத்தி ஒரு உள்ளமைக்கக்கூடிய பட்டன் கூறை எவ்வாறு உருவாக்குவது என்பதற்கான எடுத்துக்காட்டு இங்கே:


.button {
  --button-bg-color: #007bff;
  --button-text-color: #ffffff;
  --button-padding: 10px 20px;
  --button-border-radius: 5px;

  background-color: var(--button-bg-color);
  color: var(--button-text-color);
  padding: var(--button-padding);
  border-radius: var(--button-border-radius);
  border: none;
  cursor: pointer;
}

.button:hover {
  --button-bg-color: #0056b3;
}

.button.primary {
  --button-bg-color: #28a745;
}

இந்த எடுத்துக்காட்டில், பட்டனின் பின்னணி நிறம், உரை நிறம், பேடிங் மற்றும் பார்டர் ரேடியஸ் ஆகியவற்றிற்காக custom properties-ஐ வரையறுக்கிறோம். பட்டனின் தோற்றத்தைத் தனிப்பயனாக்க இந்த பண்புகளை மேலெழுதலாம். எடுத்துக்காட்டாக, .button.primary கிளாஸ், வேறுபட்ட பின்னணி நிறத்துடன் ஒரு முதன்மை பட்டனை உருவாக்க --button-bg-color property-ஐ மேலெழுதுகிறது.

இந்த அணுகுமுறை, உங்கள் வலைத்தளம் அல்லது பயன்பாட்டின் ஒட்டுமொத்த வடிவமைப்பிற்குப் பொருந்தும் வகையில் எளிதாகத் தனிப்பயனாக்கக்கூடிய மீண்டும் பயன்படுத்தக்கூடிய UI கூறுகளின் ஒரு நூலகத்தை உருவாக்க உங்களை அனுமதிக்கிறது.

5. மேம்பட்ட CSS-in-JS ஒருங்கிணைப்பு

CSS Custom Properties CSS-க்கு சொந்தமானவை என்றாலும், அவற்றை Styled Components அல்லது Emotion போன்ற CSS-in-JS நூலகங்களுடன் தடையின்றி ஒருங்கிணைக்க முடியும். இது பயன்பாட்டு நிலை அல்லது பயனர் விருப்பங்களின் அடிப்படையில் custom property மதிப்புகளை டைனமிக்காக உருவாக்க ஜாவாஸ்கிரிப்டைப் பயன்படுத்த உங்களை அனுமதிக்கிறது.

எடுத்துக்காட்டு: Styled Components உடன் React-இல் டைனமிக் தீம்


import styled from 'styled-components';

const theme = {
  light: {
    backgroundColor: '#ffffff',
    textColor: '#000000',
  },
  dark: {
    backgroundColor: '#333333',
    textColor: '#ffffff',
  },
};

const Button = styled.button`
  background-color: ${props => props.theme.backgroundColor};
  color: ${props => props.theme.textColor};
  padding: 10px 20px;
  border: none;
  cursor: pointer;
`;

function App() {
  const [currentTheme, setCurrentTheme] = React.useState('light');

  const toggleTheme = () => {
    setCurrentTheme(currentTheme === 'light' ? 'dark' : 'light');
  };

  return (
    <div>
      <Button theme={theme[currentTheme]}>Click Me</Button>
      <button onClick={toggleTheme}>Toggle Theme</button>
    </div>
  );
}

export default App;

இந்த எடுத்துக்காட்டில், வெவ்வேறு தீம் உள்ளமைவுகளைக் கொண்ட ஒரு theme ஆப்ஜெக்டை வரையறுக்கிறோம். Button கூறு, தீம் மதிப்புகளை அணுகி பட்டனின் ஸ்டைல்களுக்குப் பயன்படுத்த Styled Components-ஐப் பயன்படுத்துகிறது. toggleTheme செயல்பாடு தற்போதைய தீமைப் புதுப்பிக்கிறது, இதனால் பட்டனின் தோற்றம் அதற்கேற்ப மாறுகிறது.

இந்த அணுகுமுறை, பயன்பாட்டு நிலை அல்லது பயனர் விருப்பங்களில் ஏற்படும் மாற்றங்களுக்குப் பதிலளிக்கும் வகையில் மிகவும் டைனமிக் மற்றும் தனிப்பயனாக்கக்கூடிய UI கூறுகளை உருவாக்க உங்களை அனுமதிக்கிறது.

6. CSS Custom Properties உடன் அனிமேஷன் கட்டுப்பாடு

கால அளவு, தாமதம் மற்றும் ஈஸிங் செயல்பாடுகள் போன்ற அனிமேஷன் அளவுருக்களைக் கட்டுப்படுத்த CSS Custom Properties பயன்படுத்தப்படலாம். இது அனிமேஷனின் மைய CSS-ஐ மாற்றாமல் எளிதாக சரிசெய்யக்கூடிய மிகவும் நெகிழ்வான மற்றும் டைனமிக் அனிமேஷன்களை உருவாக்க உங்களை அனுமதிக்கிறது.

எடுத்துக்காட்டு: டைனமிக் அனிமேஷன் கால அளவு


:root {
  --animation-duration: 1s;
}

.element {
  animation: fadeIn var(--animation-duration) ease-in-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

இந்த எடுத்துக்காட்டில், --animation-duration custom property fadeIn அனிமேஷனின் கால அளவைக் கட்டுப்படுத்துகிறது. custom property மதிப்பை மாற்றுவதன் மூலம் அனிமேஷன் கால அளவை எளிதாக மாற்றலாம், மேலும் அனிமேஷன் தானாகவே அதற்கேற்ப சரிசெய்யப்படும்.

எடுத்துக்காட்டு: வரிசைப்படுத்தப்பட்ட அனிமேஷன்கள் (Staggered Animations)

மேலும் மேம்பட்ட அனிமேஷன் கட்டுப்பாட்டிற்கு, ஏற்றுதல் வரிசைகள் அல்லது ஆன்-போர்டிங் அனுபவங்களில் அடிக்கடி காணப்படும் வரிசைப்படுத்தப்பட்ட அனிமேஷன்களை உருவாக்க `animation-delay` உடன் custom properties-ஐப் பயன்படுத்துவதைக் கவனியுங்கள்.


.staggered-item:nth-child(1) {
  animation-delay: calc(var(--stagger-delay) * 0);
}

.staggered-item:nth-child(2) {
  animation-delay: calc(var(--stagger-delay) * 1);
}

.staggered-item:nth-child(3) {
  animation-delay: calc(var(--stagger-delay) * 2);
}

இங்கே, `--stagger-delay` ஒவ்வொரு உருப்படியின் அனிமேஷன் தொடக்கத்திற்கும் இடையிலான நேர வேறுபாட்டைத் தீர்மானிக்கிறது, இது ஒரு அடுக்கடுக்கான விளைவை உருவாக்குகிறது.

7. Custom Properties உடன் பிழைதிருத்தம் (Debugging)

Custom Properties பிழைதிருத்தத்திற்கும் உதவலாம். ஒரு custom property-ஐ ஒதுக்கி அதன் மதிப்பை மாற்றுவது தெளிவான காட்சி குறிகாட்டியாக அமைகிறது. உதாரணமாக, ஒரு பின்னணி வண்ணப் பண்பை தற்காலிகமாக மாற்றுவது ஒரு குறிப்பிட்ட ஸ்டைல் விதியால் பாதிக்கப்பட்ட பகுதியை விரைவாக முன்னிலைப்படுத்தலாம்.

எடுத்துக்காட்டு: லேஅவுட் சிக்கல்களை முன்னிலைப்படுத்துதல்


.problematic-area {
   --debug-color: red; /* இதை தற்காலிகமாக சேர்க்கவும் */
   background-color: var(--debug-color, transparent); /* --debug-color வரையறுக்கப்படவில்லை என்றால், வெளிப்படையான நிறத்திற்கு மாறும் */
}

var(--debug-color, transparent) தொடரியல் ஒரு பின்னடைவு மதிப்பை வழங்குகிறது. --debug-color வரையறுக்கப்பட்டால், அது பயன்படுத்தப்படும்; இல்லையெனில், transparent பயன்படுத்தப்படும். இது custom property தற்செயலாக அகற்றப்பட்டால் பிழைகளைத் தடுக்கிறது.

CSS Custom Properties-ஐப் பயன்படுத்துவதற்கான சிறந்த நடைமுறைகள்

நீங்கள் CSS Custom Properties-ஐ திறம்பட பயன்படுத்துவதை உறுதிசெய்ய, பின்வரும் சிறந்த நடைமுறைகளைக் கவனியுங்கள்:

செயல்திறன் கருத்தாய்வுகள்

CSS Custom Properties பல நன்மைகளை வழங்கினாலும், அவற்றின் சாத்தியமான செயல்திறன் தாக்கங்கள் குறித்து அறிந்திருப்பது முக்கியம். பொதுவாக, custom properties-ஐப் பயன்படுத்துவது ரெண்டரிங் செயல்திறனில் குறைந்தபட்ச தாக்கத்தையே ஏற்படுத்துகிறது. இருப்பினும், சிக்கலான கணக்கீடுகளின் அதிகப்படியான பயன்பாடு அல்லது custom property மதிப்புகளுக்கு அடிக்கடி செய்யப்படும் புதுப்பிப்புகள் செயல்திறன் இடையூறுகளுக்கு வழிவகுக்கும்.

செயல்திறனை மேம்படுத்த, பின்வருவனவற்றைக் கவனியுங்கள்:

CSS ப்ரீப்ராசசர்களுடன் ஒப்பீடு

CSS Custom Properties பெரும்பாலும் Sass அல்லது Less போன்ற CSS ப்ரீப்ராசசர்களில் உள்ள மாறிகளுடன் ஒப்பிடப்படுகின்றன. இரண்டும் ஒத்த செயல்பாட்டை வழங்கினாலும், சில முக்கிய வேறுபாடுகள் உள்ளன:

பொதுவாக, CSS Custom Properties டைனமிக் ஸ்டைலிங்கிற்கு மிகவும் நெகிழ்வான மற்றும் சக்திவாய்ந்த தீர்வாகும், அதே நேரத்தில் CSS ப்ரீப்ராசசர்கள் குறியீடு அமைப்பு மற்றும் நிலையான ஸ்டைலிங்கிற்கு மிகவும் பொருத்தமானவை.

முடிவுரை

CSS Custom Properties டைனமிக், பராமரிக்கக்கூடிய மற்றும் ரெஸ்பான்சிவ் ஸ்டைல்ஷீட்களை உருவாக்குவதற்கான ஒரு சக்திவாய்ந்த கருவியாகும். டைனமிக் தீமிங், ரெஸ்பான்சிவ் டிசைன், சிக்கலான கணக்கீடுகள் மற்றும் கூறு ஸ்டைலிங் போன்ற மேம்பட்ட நுட்பங்களைப் பயன்படுத்துவதன் மூலம், உங்கள் முன்முனை மேம்பாட்டுப் பணி ஓட்டத்தை கணிசமாக மேம்படுத்தலாம். நீங்கள் CSS Custom Properties-ஐ திறம்பட பயன்படுத்துவதை உறுதிசெய்ய சிறந்த நடைமுறைகளைப் பின்பற்றவும் மற்றும் செயல்திறன் தாக்கங்களைக் கருத்தில் கொள்ளவும் நினைவில் கொள்ளுங்கள். உலாவி ஆதரவு தொடர்ந்து மேம்படுவதால், CSS Custom Properties ஒவ்வொரு முன்முனை டெவலப்பரின் கருவித்தொகுப்பிலும் இன்னும் அவசியமான பகுதியாக மாறும்.

இந்த வழிகாட்டி மேம்பட்ட CSS Custom Property பயன்பாட்டின் ஒரு விரிவான கண்ணோட்டத்தை வழங்கியுள்ளது. இந்த நுட்பங்களை பரிசோதனை செய்து, மேலும் ஆவணங்களை ஆராய்ந்து, அவற்றை உங்கள் திட்டங்களுக்கு ஏற்ப மாற்றியமைக்கவும். மகிழ்ச்சியான கோடிங்!