کشیدن برنامهٔ استودیو
هدف
صفحه را روی بوم بکشید و بگویید هر شیء چیست.
کجا باز میشود
راهحل خود را باز کنید، صفحهها را انتخاب کنید، یکی را برگزینید و طراحی را بزنید. بوم همانجا باز میشود، زیر همان مسیر و همان انتخابگرهای محیط و راهحل — همان بومی که طراح گزارش و طراح داشبورد از آن استفاده میکنند، پس هر چه از آن میدانید تغییری نکرده است.
یک برنامه چند صفحه است
هر قابی که آن را «صفحه» نشانهگذاری کنید یک صفحه از این برنامه است. دومی را کنار اولی بکشید و همانطور نشانهگذاری کنید تا برنامهتان دو صفحه داشته باشد — روی یک بوم، کنار هم، جایی که هر دو را با هم میبینید.
نام صفحه همان نام قاب است. نام قاب را در فهرست لایهها عوض کنید، نام صفحه عوض شده است. این نام تزئینی نیست: ناوبری با همین نام سراغ صفحه میرود، پس دو صفحه با یک نام هنگام ذخیره پذیرفته نمیشود و به شما گفته میشود کدام را تغییر دهید.
بگویید با کدام باز میشود. بهمحض اینکه برنامه دو صفحه داشته باشد، انتخابگر باز میشود با در نوار عنوان پیدا میشود. صفحهای را برگزینید که تازهوارد باید روی آن فرود بیاید. با یک صفحه انتخابگری در کار نیست، چون چیزی برای انتخاب نیست.
کشیدن دو صفحه و انتخاب صفحهٔ آغازین امروز کار میکند. آنچه هنوز نیست navigate است — کنشی که کسی را
از یکی به دیگری میبرد — و دکمههایی که آن را صدا میزنند. این گام بعدی است و عمداً غایب است: کنشی که
هیچ کاری نمیکند از کنشی که اصلاً پیشنهاد نشده بدتر است.
تنها چیز تازه: اینکه هر شیء چیست
شیئی را انتخاب کنید و زبانهٔ صفحه را کنار گرافیک باز کنید. آنجا یک پرسش هست:
این شیء …
پاسخ بدهید، و چیزی را به پلتفرم گفتهاید که خودش نمیتواند بفهمد. مستطیلی از متن که عنوان است با مستطیلی از متن که بند است روی بوم یکساناند؛ فقط شما میدانید کدام کدام است، و همین تفاوت است که صفحهخوان اعلام میکند و صفحهٔ نهایی از آن ساخته میشود.
| پاسخ | برای چه |
|---|---|
| خودِ صفحه | قابی که هر چیز دیگری درونش کشیده میشود. اندازهاش اندازهٔ صفحه است. |
| یک ناحیه | جعبهای که چیزهای دیگر را گروه میکند — نوار بالا، ستون کناری، یک کارت. |
| یک عنوان | تیتر. |
| یک بند | متن معمولی. |
| یک فهرست / یک قلم فهرست | فهرست، و یک ورودی از آن. |
| یک دکمه | چیزی که فشرده میشود. |
| یک تصویر | تصویری که معنا دارد، در برابر تصویری که تزئین است. |
| (خالی) | گرافیکِ صفحه — کشیده میشود، اما دربارهٔ محتوای صفحه چیزی نمیگوید. |
زیر آنها، همان فهرست کنترل را هم پیشنهاد میدهد: دکمه، کادر متن، ناحیهٔ متن، کادر تیک، فهرست کشویی یا انتخابگر تاریخ. پایینتر را ببینید — آنها نقاشی نیستند.
میبینید که فهرست با آنچه انتخاب کردهاید تغییر میکند. یک قاب میتواند خودِ صفحه باشد؛ یک شیء متنی نمیتواند، چون اندازهٔ صفحه اندازهٔ صفحه است. یک خط یا یک شکل اصلاً پاسخی ندارد، و زبانه همین را میگوید بهجای آنکه پانلی خالی نشانتان دهد.
با کشیدن یک قاب شروع کنید و آن را خودِ صفحه علامت بزنید. هر چیز دیگری درونش میرود، و شیءهای درون یک قاب را میتوان به لبههایش سنجاق کرد تا با تغییر اندازه دنبالش بیایند — همان سنجاقکردنی که در آن دو طراح دیگر به کار میبرید.
اندازهٔ یک متن
هر متنی را انتخاب کنید؛ بخش متن آن با دو دکمه تمام میشود:
- اندازه را خودتان بدهید — پیشفرض، و همان کاری که متن همیشه میکرده. پهنا از آنِ شماست و کلمهها در آن میشکنند. ارتفاع هم از آنِ شماست و کفِ اندازه است: جعبه را بلندتر کنید اگر خواستید؛ هرگز کوتاهتر از خودِ کلمهها نمیشود. (پیش از این دستگیرههای عمودی حرکت میکردند و جعبه بیدرنگ به جای اولش برمیگشت، و همین بود که متن را تنها شیئی میکرد که نمیشد اندازهاش را عوض کرد.)
- به اندازهٔ متن — جعبه دقیقاً همان متن میشود: به پهنای بلندترین سطری که نوشتهاید و به بلندای همان سطرها. چیزی نمیشکند و دستگیرههای تغییر اندازه میروند، چون دیگر چیزی برای تصمیمگرفتن ندارند. برای بازگرداندنشان اندازه را خودتان بدهید را بزنید.
عمداً حالت سومی نیست که بگذارد جعبه کوتاهتر از کلمههایش باشد. جعبهای که آنچه نوشتهاید را پشت لبهٔ خودش پنهان کند خطایی است که دیده نمیشود، و کف اندازه هر چه «تغییر اندازه» لازم دارد را بدون آن میدهد.
متن کجای جعبه بنشیند
ردیف چینش در بخش متن گروه دومی هم دارد: متن در بالای کادر، در میانهی کادر و در پایین کادر. این میگوید وقتی جعبه از کلمهها بلندتر است، متن به کدام لبه چسبیده است.
پیشفرض میانه است، و همان چیزی است که نوشتهٔ روی یک دکمه لازم دارد: کادر نوشتهای که درون دکمهای ۴۰ نقطهای کشیده میشود عمداً از یک سطرش بلندتر است، و میانهچینی همان است که کلمهها را جایی میگذارد که دکمه را کشیدهاید.
برای هر چیزی که ممکن است بلندتر شود، بالا را برگزینید. جعبهای میانهچین که کوچکتر از آب درآید از هر دو سو بیرون میزند، پس یادداشتی که به سه سطر رسیده از بالا روی برچسب بالای خودش میآید. چسباندنش به بالا یعنی فقط میتواند رو به پایین رشد کند، به فضایی که میبینید. این همان چیزی است که بوم همیشه کشیده، پس تنها تنظیمی است که در آن نقاشی و صفحه دقیقاً همداستاناند.
برای برگزیدن دوبارهٔ قاب صفحه، یک بار روی پسزمینهٔ خالیاش کلیک کنید — کلیک روی قاب معمولاً به آنچه درونش کشیده شده میرسد، و یک کلیک روی تکهای خالی خودِ قاب را با همهٔ دستگیرههایش برمیگزیند. وقتی تکهٔ خالیای نمانده، راستکلیک ← گزینش لایه، یا از پنل لایهها. اندازهاش را با کشیدن دستگیره یا با تایپ عرض و ارتفاع در بازرس تغییر دهید؛ به هر دو شیوه، شیءهای سنجاقشدهٔ درونش دنبال میآیند.
وقتی چند چیز روی هماند، روی یکی کار کنید
صفحهای زبانهدار چند پنل است که در یک مستطیل کشیده شدهاند و هر بار یکی نشان داده میشود. رو ی بوم همهشان کشیده میشوند، پس فقط بالایی را میتوان کلیک، جابهجا یا اندازه کرد و بقیه زیرش، دور از دسترس، میمانند.
دکمهٔ هدف را روی سطر یک لایه بزنید (کنار چشم و قفل) تا هر چیز دیگری از بوم برود. رویش کار کنید و دوباره همان دکمه را بزنید — یا نمایش همه در نواری که بالای فهرست لایهها میآید، که هست تا بومی که نیمهخالی شده همیشه بگوید چرا.
هیچچیزِ برنامهٔ شما را تغییر نمیدهد. چشمِ کنارش هم راه را باز میکند، اما چشم دیدپذیریِ خودِ نقاشی است: لایهای که پنهان کردهاید اصلاً در برنامهتان نمیآید، پس پنهانکردن دو پنل و یادنیاوردنِ بازگرداندنشان یعنی انتشار صفحهای که دو پنل کم دارد. این فقط بوم است، ذخیره نمیشود، و بار بعد که طراح را باز کنید نیست.
فهرست لایهها همان منوی راستکلیک را دارد
روی سطری در درخت لایهها راستکلیک کنید و همان منویی را میگیرید که بوم به شما میدهد: چیدنِ ت رتیب، گروه، ماسک، وارونهسازی، ساخت مؤلفه، قفل، تکثیر، حذف — همهاش، روی همان سطر.
نخست سطر را برمیگزیند، پس منو همیشه روی چیزی عمل میکند که به آن اشاره کردهاید، نه روی هر چه پیشتر انتخاب بوده. اینجا زیرمنوی گزینش لایه نیست: آن یکی برای رفعِ ابهامِ کلیک روی شکلهای رویهم است، و یک سطر در درخت از پیش یک شیء است.
بیشترین کاربردش دقیقاً برای شیءهایی است که بوم دشوارشان میکند — چیزی دفنشده درون یک فریم، پشت چیز دیگر، یا بیرون از نما. آن را در درخت پیدا کنید و همانجا کار را انجام دهید.
کلیدهای نما و شکلها
- بزرگنمایی با Ctrl+= و Ctrl+- (در مک ⌘)، یا با Ctrl و چرخ ماوس. Ctrl+0 به ۱۰۰٪ برمیگرداند.
- Shift+1 همهچیز روی بوم را نشان میدهد. Shift+2 پنجره را با آنچه انتخاب کردهاید پر میکند.
- جابهجایی نما با چرخ ماوس (با Shift به پهلو)، با نگه داشتن Space و کشیدن، یا با ابزار دست (H).
- کلیدهای جهت انتخاب را یک پیکسل جابهجا میکنند؛ با Shift ده پیکسل. هر فشار یک گام بر گرداندن است.
- شکلی که تازه کشیدهاید انتخابشده است و ابزار انتخاب برگشته، پس همان لحظه میتوانید رنگ و نامش را بدهید.
- نوشتن چرخش شکل را گرد مرکزش میچرخاند، همانطور که دستگیرهٔ چرخش میچرخاند.
- هنگام کشیدن، خطهای راهنما لبهها و مرکزها را با آنچه روی صفحه است همتراز میکنند. برای جای دادنِ آزاد، Alt را نگه دارید.
- با ابزار متن کلیک کنید و بنویسید. متن تازه انتخاب شده و نوشتهٔ پیشفرضش برگزیده است، پس نخستین کلید جایش را میگیرد.
- کلیک روی شکلی در یک گروه کل گروه را انتخاب میکند. برای رسیدن به خودِ آن شکل دوبار کلیک کنید.
- اجتماع، تفریق، اشتراک و حذف اشتراک نتیجه را جای شکلِ زیرین میگذارند: در همان قاب، با نام آن، و با گوشههای گرد اگر گرد بودند.
- Ctrl+D روی چیزی درون یک چیدمان خودکار نسخه را درست پس از آن، در همان ردیف، میگذارد.
پیشنیازها
- صفحه از پیش وجود دارد — ساختن صفحهٔ استودیو.
گامها
- راهحل خود را باز کنید، صفحهها را انتخاب کنید، یکی را برگزینید و طراحی را بزنید.
- یک قاب بکشید. با انتخاب آن، زبانهٔ صفحه را باز کنید و این شیء را روی خودِ صفحه بگذارید.
- درونش بکشید: قاب برای ناحیهها، متن برای عنوانها و نوشتهها، تصویر هر جا تصویر میخواهید.
- هر کدام را انتخاب کنید و بگویید چیست. آنهایی را که فقط تزئیناند خالی بگذارید.
- پیشنمایش را بزنید تا صفحه را همانگونه که کاربر میبیند ببینید.
- ذخیره را بزنید.
بار بعد که صفحه را باز کنید، طرح شما دقیقاً همانطور که رهایش کردهاید برمیگردد.
پیشنمایش خودِ چیز را نشان میدهد
پیشنمایش بوم را با خودِ صفحه عوض میکند — نه عکسی از آن، و نه بوم با راهنماهای خاموش. همان جزئی است که پوستهٔ پلتفرم سوار میکند، پس آنچه میبینید همان است که کاربر میگیرد. متنی در آن را انتخاب کنید؛ انتخاب میشود. Ctrl+F بزنید؛ مرورگر پیدایش میکند.
برای بازگشت طراحی را بزنید. پیشنمایش همیشه آنچه را اکنون روی بوم است نشان میدهد، از جمله ویرایشهایی که ذخیره نکردهاید.
ذخیره در واقع چه میکند
ذخیره دو چیز را نگه میدارد: طرح شما، و صفحه که به عنصرهای معمولی وب تبدیل شده است. عنوان به یک عنوان واقعی بدل میشود، بند به یک بند واقعی، دکمه به یک دکمهٔ واقعی. همین است که متن را انتخابشدنی و جستوجوپذیر میکند، به دکمه حلقهٔ فوکوس میدهد و به صفحهخوان اجازه میدهد صفحه را درست اعلام کند — هیچکدام از عهدهٔ یک طرح برنمیآید.
پس پاسخهای شما در فهرست این شیء برچسب نیستند. آنها تعیین میکنند هر شیء چه میشود.
دو نتیجه از آن برمیآید که دانستنش میارزد:
- صفحهٔ شما برای خوانندهٔ فارسی و عربی آینه میشود. هر چه به چپ سنجاق کردهاید در راست میآید، و متنی که چپچین کردهاید به لبهٔ خواندن میچسبد. لازم نیست دو بار بکشیدش.
- تغییر اندازه هزینهای ندارد. سنجاقکردن یک شیء به هر دو لبه آن را کشسان میکند و سنجاقکردن به پایین آنجا نگهش میدارد — مرورگر خودش این کار را میکند، پس صفحه هرچه تغییر اندازه بدهد روان میماند. اگر خیلی باریک شود، به جای کوچکشدن پیمایش میکند: صفحه چیزی است که مردم میخوانند و در آن تایپ میکنند، و کوچککردنش متنی میسازد که کسی نمیتواند بخواند.
اگر ذخیره چیزی به شما گفت
ذخیره ممکن است با نکتهای برگردد. هیچکدام جلوی ذخیره را نمیگیرد:
- هیچ شیئی به عنوان صفحه نشانهگذاری نشده — به جایش کل طرح به کار رفت. یک قاب را صفحه کنید تا شیءهای درونش چیزی برای سنجاقشدن داشته باشند.
- شیء دیگری هم به عنوان صفحه نشانهگذاری شده — تنها اولی به کار میرود؛ بقیه جعبهٔ معمولی شدند.
- دکمهای هیچ متنی ندارد — صفحهخوان چیزی برای اعلام ندارد. یک شیء متنی درون دکمه بکشید.
وقتی کنترل واقعی میخواهید، نه نقاشیای از آن
یک جعبه بکشید و در زبانهٔ صفحه بهجای یک عنصر، یکی از ورودیهای کنترل را برگزینید. آنچه روی صفحهٔ نهایی پدیدار میشود خودِ کنترل سکو است — همان انتخابگر تاریخی که فرمهای رکورد به کار میبرند، همان کادر متن، همان دکمه.
این مهمتر از آن است که به نظر میرسد. مستطیلی که شبیه کادر تاریخ است تقویم ندارد. مستطیلی که شبیه کادر متن است نه مکاننما دارد، نه انتخاب متن، نه تکمیل خودکار و نه رفتار صفحهکلید. و وقتی کاربری فارسیزبان صفحهٔ شما را باز کند، انتخابگر تاریخ واقعی تقویم جلالی را نشان میدهد — بدون آنکه شما کاری کرده باشید، چون هرگز دوباره کشیده نشده است.
چه نگه میدارید، و چه از آنِ سکو میماند. جایی که کشیدهاید، اندازهاش، و رنگآمیزیاش همه از آنِ شماست — پرشدگی، کادر، گردی گوشهها، و رنگ و ضخامت کلمههای درونش. آنچه از آنِ سکو میماند هر چیزی است که یک نقاشی نمیتواند بگوید: مکاننما، تقویم، ارقام، رفتار صفحهکلید، و حلقهٔ تمرکزی که رویاش رنگ نزدهاید.
هر چه را دستنخورده بگذارید از آنِ سکو میماند، و همین نکته است نه محدودیت. کنترلی که هرگز رنگآمیزیاش نکردهاید دقیقاً مثل هر کنترل دیگرِ محصول دیده میشود و با تغییر پوسته همراه میرود. تنها کادر را رنگ بزنید، تنها کادر از آنِ شماست.
بهجای تایپکردن یک کد شانزدهشانزدهی، از ردیف توکنهای زیر پرشدگی یکی را برگزینید. «اصلی» رنگ تأکیدِ مستأجر است در حالت روشن و تیره؛ یک کد رنگ تنها در یکی از آن دو درست است. کنتر لی که از جعبهابزار کنترلها رها میکنید از پیش با توکن رنگ خورده است، و به همین دلیل در هر دو حالت درست دیده میشود.
برچسب را درون جعبه بنویسید. کلماتی که درونش میکشید میشوند عنوان دکمه، برچسب کادر تیک، یا متن راهنمای کمرنگ درون کادر متن — فیلد جداگانهای برای پرکردن نیست.
چیزهایی را تایپ میکنید نه میکشید:
- گزینهها، روی فهرست کشویی، هر خط یکی. تنها چیزی که در یک کنترل نمیتوان کشید: فهرست کشویی بسته یک مقدار را نشان میدهد و هرگز خود فهرست را.
- میپذیرد، روی جعبهٔ متن — چه نوع مقداری نگه میدارد: متن، گذرواژه، نشانی ایمیل، عدد، شمارهٔ تلفن، نشانی وب. این تزئین نیست: جعبهٔ گذرواژه آنچه را تایپ میشود میپوشاند و با کلید نمایشِ خودِ سکو میآید، جعبهٔ ایمیل یا نشانی وب روی گوشی صفحهکلید مناسب را بالا میآورد و جعبهٔ عدد صفحهکلید عددی را.
- فقطخواندنی، روی جعبهٔ متن یا ناحیهٔ متن — میتوان خواند، انتخاب و رونوشت کرد اما تغییر نه. با غیرفعال فرق دارد که روی هر کنترلی هست و یعنی این کنترل اصلاً برای این کاربر نیست: کنترل غیرفعال را صفحهکلید و صفحهخوان رد میکنند، ولی فقطخواندنی را نه.
- بیشترین نویسه، روی جعبهٔ متن یا ناحیهٔ متن — مرورگر تایپ را در آن اندازه متوقف میکند.
- میپذیرد، روی یک انتخابگر فایل — هر فایلی یا یک تصویر. این یک فیلد دو چیز را با هم تعیین میکند: اینکه پنجرهٔ انتخاب فایل چه پیشنهاد دهد، و اینکه آنچه انتخاب شد بهصورت تصویر نمایش داده شود یا نه.
- انتخاب میکند، روی یک انتخابگر تاریخ — یک تاریخ، تاریخ و ساعت، یا یک ساعت.
- تقویم، روی انتخابگر تاریخ — تنظیم مستأجر، میلادی یا شمسی. آن را روی گزینهٔ نخست بگذارید مگر آنکه تقویم واقعیتی دربارهٔ خودِ داده باشد نه دربارهٔ خواننده: تاریخ انقضای گذرنامه برای همه میلادی است، حال آنکه «تاریخ تأیید» را باید در تقویمی دید که خوانندهٔ آن به کار میبرد.
مقدار را به یک فیلد وضعیت ببندید تا فایل انتخابشده در آن بنشیند. متنی که به همان فیلد بسته شود
نام فایل را نشان میدهد. برای نگهداشتن فایل، آن فیلد را بهعنوان مقدار یک فیلد فایل یا تصویر به
createRecord یا updateRecord بدهید — updateRecord("contact", id, { new_photo: getState("photo") })
— تا همراه رکورد ذخیره شود. تا دستگیرهای این کار را نکند، فایل در همان صفحه میماند و با ترک صفحه از
بین میرود. فایلی بزرگتر از ۴ مگابایت پیش از خواندهشدن، در همان انتخابگر رد میشود.