GNOME ప్రాజెక్ట్ Libadwaita లైబ్రరీ యొక్క మొదటి స్థిరమైన విడుదలను ప్రచురించింది, ఇది GNOME HIG (హ్యూమన్ ఇంటర్ఫేస్ మార్గదర్శకాలు)ని అనుసరించే వినియోగదారు ఇంటర్ఫేస్ స్టైలింగ్ కోసం భాగాల సమితిని కలిగి ఉంటుంది. లైబ్రరీ సాధారణ గ్నోమ్ స్టైల్కు అనుగుణంగా ఉండే అప్లికేషన్లను రూపొందించడానికి రెడీమేడ్ విడ్జెట్లు మరియు ఆబ్జెక్ట్లను కలిగి ఉంటుంది, దీని ఇంటర్ఫేస్ ఏ పరిమాణంలోనైనా స్క్రీన్లకు అనుకూలంగా సర్దుబాటు చేయబడుతుంది. లైబ్రరీ కోడ్ C లో వ్రాయబడింది మరియు LGPL 2.1+ లైసెన్స్ క్రింద పంపిణీ చేయబడుతుంది.
libadwaita లైబ్రరీ GTK4తో కలిపి ఉపయోగించబడుతుంది మరియు GNOMEలో ఉపయోగించిన అద్వైత థీమ్ యొక్క భాగాలను కలిగి ఉంటుంది, ఇది GTK నుండి ప్రత్యేక లైబ్రరీకి తరలించబడింది. libadwaita కోడ్ libhandy లైబ్రరీపై ఆధారపడి ఉంటుంది మరియు ఈ లైబ్రరీకి సక్సెసర్గా ఉంచబడింది, ఇది వాస్తవానికి GNOME టెక్నాలజీల ఆధారంగా మొబైల్ ప్లాట్ఫారమ్లలో అనుకూల ఇంటర్ఫేస్ను రూపొందించడానికి సృష్టించబడింది మరియు Librem 5 స్మార్ట్ఫోన్ కోసం Phosh GNOME వాతావరణంలో మెరుగుపరచబడింది.
లిస్ట్లు, ప్యానెల్లు, ఎడిటింగ్ బ్లాక్లు, బటన్లు, ట్యాబ్లు, సెర్చ్ ఫారమ్లు, డైలాగ్ బాక్స్లు మొదలైన వివిధ ఇంటర్ఫేస్ ఎలిమెంట్లను కవర్ చేసే స్టాండర్డ్ విడ్జెట్లను లైబ్రరీ కలిగి ఉంటుంది. ప్రతిపాదిత విడ్జెట్లు PCలు మరియు ల్యాప్టాప్ల యొక్క పెద్ద స్క్రీన్లలో మరియు స్మార్ట్ఫోన్ల యొక్క చిన్న టచ్ స్క్రీన్లలో సజావుగా పనిచేసే సార్వత్రిక ఇంటర్ఫేస్లను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తాయి. స్క్రీన్ పరిమాణం మరియు అందుబాటులో ఉన్న ఇన్పుట్ పరికరాల ఆధారంగా అప్లికేషన్ ఇంటర్ఫేస్ డైనమిక్గా మారుతుంది. లైబ్రరీలో మాన్యువల్ అనుకూలీకరణ అవసరం లేకుండా గ్నోమ్ మార్గదర్శకాలకు రూపాన్ని మరియు అనుభూతిని అందించే అద్వైత శైలుల సమితి కూడా ఉంది.
గ్నోమ్ స్టైలింగ్ ఎలిమెంట్స్ను ప్రత్యేక లైబ్రరీలోకి తరలించడం వలన గ్నోమ్-నిర్దిష్ట మార్పులు GTK నుండి విడిగా అభివృద్ధి చేయబడటానికి అనుమతిస్తుంది, GTK డెవలపర్లు ప్రధాన విషయాలపై దృష్టి పెట్టడానికి వీలు కల్పిస్తుంది మరియు GNOME డెవలపర్లు GTKపై ప్రభావం చూపకుండా తమకు కావలసిన స్టైలింగ్ మార్పులను మరింత త్వరగా మరియు సరళంగా ముందుకు నెట్టడానికి వీలు కల్పిస్తుంది. అయితే, ఈ విధానం మూడవ పక్షం GTK-ఆధారిత వినియోగదారు వాతావరణాల డెవలపర్లకు ఇబ్బందులను సృష్టిస్తుంది, వారు libadwaitaని ఉపయోగించవలసి ఉంటుంది మరియు GNOME యొక్క లక్షణాలకు అనుగుణంగా మరియు దాని రూపకల్పనను పునరావృతం చేయడానికి లేదా GTK స్టైల్ లైబ్రరీ యొక్క వారి స్వంత సంస్కరణను అభివృద్ధి చేయడానికి మరియు అంగీకరించడానికి బలవంతం చేయబడతారు. థర్డ్-పార్టీ స్టైల్ లైబ్రరీల ఆధారంగా ఎన్విరాన్మెంట్లలో గ్నోమ్ అప్లికేషన్లు భిన్నమైనవి.
థర్డ్-పార్టీ ఫ్రేమ్వర్క్ డెవలపర్ల నుండి వచ్చిన ప్రధాన ఫిర్యాదు ఇంటర్ఫేస్ ఎలిమెంట్ల రంగులను భర్తీ చేయడంలో సమస్యలకు సంబంధించినది, అయితే libadwaita డెవలపర్లు ఫ్లెక్సిబుల్ కలర్ మేనేజ్మెంట్ కోసం APIని అందించడానికి పని చేస్తున్నారు, ఇది భవిష్యత్ విడుదలలో చేర్చబడుతుంది. పరిష్కరించని సమస్యలలో, టచ్ స్క్రీన్లపై మాత్రమే సంజ్ఞ నియంత్రణ విడ్జెట్ల యొక్క సరైన ఆపరేషన్ కూడా ప్రస్తావించబడింది - టచ్ప్యాడ్ల కోసం, అటువంటి విడ్జెట్ల యొక్క సరైన ఆపరేషన్ తర్వాత నిర్ధారించబడుతుంది, ఎందుకంటే వాటికి GTKకి మార్పులు అవసరం.
లిభండితో పోలిస్తే లిబద్వైతలో ప్రధాన మార్పులు:
- పూర్తిగా రీడిజైన్ చేయబడిన శైలుల సెట్. GNOMEలో ఉపయోగించిన అద్వైత థీమ్ GTK నుండి తీసివేయబడింది మరియు ఆధునీకరించబడింది మరియు పాత థీమ్ GTKలో “డిఫాల్ట్” పేరుతో పరిష్కరించబడింది. లిబద్వైటా మరియు "డిఫాల్ట్" థీమ్ మధ్య అత్యంత గుర్తించదగిన తేడాలలో ఒకటి విండో హెడర్ల రూపకల్పనలో మార్పు.
- ఎలిమెంట్స్కు రంగులను బంధించడం మరియు అప్లికేషన్ రన్ అవుతున్నప్పుడు రంగులు మార్చడం కోసం మెకానిజమ్లు మార్చబడ్డాయి (లిబాద్వైటా SCSSకి మారడం వల్ల సమస్యలు తలెత్తాయి, దీనికి రంగులు మార్చడానికి పునర్నిర్మాణం అవసరం). మూలకాల రంగులను మార్చడానికి, ఉదాహరణకు గ్నోమ్ వెబ్లో అజ్ఞాత మోడ్కు పరివర్తనను గుర్తించడానికి, ప్రాథమిక OSలో ప్రతిపాదించబడిన పద్ధతి ఉపయోగించబడుతుంది మరియు “@define-color” ద్వారా పేరున్న రంగుల స్థిర జాబితాను పేర్కొనడంపై ఆధారపడి ఉంటుంది. అయినప్పటికీ, అనేక ఇంటర్ఫేస్ ఎలిమెంట్ల రంగులు ఇప్పుడు బేస్ టెక్స్ట్ కలర్కు సంబంధించి లెక్కించబడతాయి మరియు స్వయంచాలకంగా మారుతాయి, ఇది అప్లికేషన్లను రంగు స్కీమ్ను పూర్తిగా నియంత్రించడానికి అనుమతించదు (డెవలపర్లు ఈ పరిమితిని తొలగించడానికి పని చేస్తున్నారు).
- ఎలిమెంట్లను మరింత విరుద్ధమైన హైలైట్ చేయడం వల్ల డార్క్ థీమ్లను ఉపయోగిస్తున్నప్పుడు డిస్ప్లే నాణ్యత పెరిగింది. యాస రంగు ప్రకాశవంతంగా చేయబడింది మరియు మరొక హైలైట్ రంగు జోడించబడింది, ఇది ముదురు మరియు తేలికపాటి థీమ్ల కోసం మార్చబడుతుంది.
- అప్లికేషన్లలో ఉపయోగం కోసం కొత్త స్టైల్ క్లాస్లలో ఎక్కువ భాగం జోడించబడింది. ఉదాహరణకు, పెద్ద గుండ్రని బటన్ల కోసం ".pill", GtkHeaderBarలో ".flat"ని ఉపయోగించగల సామర్థ్యం, లేబుల్లలో యాస రంగును సెట్ చేయడానికి ".accent", టేబుల్ టైపోగ్రఫీ కోసం ".numeric", బ్యాక్గ్రౌండ్ని ఉపయోగించడం కోసం ".card" మరియు జాబితాలలో వలె నీడ.
- పెద్ద ఏకశిలా SCSS ఫైల్లు చిన్న తరహా ఫైల్ల సేకరణగా విభజించబడ్డాయి.
- ముదురు డిజైన్ శైలి మరియు అధిక కాంట్రాస్ట్ మోడ్ను సెట్ చేయడానికి API జోడించబడింది.
- డాక్యుమెంటేషన్ పునర్నిర్మించబడింది; ఇప్పుడు దానిని రూపొందించడానికి gi-docgen టూల్కిట్ ఉపయోగించబడుతుంది.
- యానిమేషన్ API జోడించబడింది, ఇది ఒక స్థితిని మరొక స్థితితో భర్తీ చేసేటప్పుడు పరివర్తన ప్రభావాలను సృష్టించడానికి అలాగే స్ప్రింగ్ యానిమేషన్ను రూపొందించడానికి ఉపయోగించబడుతుంది.
- AdwViewSwitcher ఆధారంగా ట్యాబ్ల కోసం, చూడని నోటిఫికేషన్ల సంఖ్యతో లేబుల్లను ప్రదర్శించే సామర్థ్యం జోడించబడింది.
- Libadwaita మరియు లోడ్ స్టైల్లను స్వయంచాలకంగా ప్రారంభించేందుకు AdwApplication క్లాస్ (GtkApplication యొక్క ఉపవర్గం) జోడించబడింది.
- ప్రామాణిక కార్యకలాపాలను సులభతరం చేయడానికి విడ్జెట్ల ఎంపిక జోడించబడింది: విండో శీర్షికను సెట్ చేయడానికి AdwWindowTitle, చైల్డ్ సబ్క్లాస్ల సృష్టిని సులభతరం చేయడానికి AdwBin, కలిపి బటన్ల కోసం AdwSplitButton, చిహ్నం మరియు లేబుల్తో బటన్ల కోసం AdwButtonContent.
- API శుభ్రం చేయబడింది.
మూలం: opennet.ru