Adobe Stock Marks 50 Million Assets


Adobe
This year is going to be a big one for Adobe Stock – we are excited to announce that today is our fifty million milestone!
LUNJA / ADOBE STOCK
Fifty million assets is an incredible amount, and we want to thank all our talented contributors, who every day upload stunning content, for making this possible. With millions of high-res photos, vectors, illustrations, HD videos and the recent addition of 4K videos to our arsenal, you’ll find the perfect content for your story on Adobe Stock.
Why do images matter? Humans are visual creatures and eighty percent of all environmental information is perceived through our eyes. We think, speak and remember by means of pictures. So it’s no surprise that images play a crucial role in communications in the digital age.

Images are fast – our brain captures visual content in a split second. Images also arouse curiosity, evoke emotions and function without language. Most importantly, images tell powerful stories, engaging and captivating viewers across the world. Fun fact: Images are processed in the right hemisphere of the brain, which is associated with imagination, intuition and feelings.
It’s proven that images are effective and impactful – we read and speak different languages, but photos are the universal language of visual communications. Whether for marketing, advertising or a branding campaign, you can be successful at communicating your message with compelling stock photos. The reputation, variety and class of stock assets have changed dramatically over recent years, making finding high quality, original and beautiful content easier than ever before.
BEAUTYBLOWFLOW / ADOBE STOCK
Thank you again to our amazing contributors who’ve embraced us. We look forward to the next fifty million assets with you! To celebrate this milestone, check out our very own Adobe Slate on the importance of images, and some visual highlights below to whet your creative appetite. Enjoy – and stay tuned for more exciting announcements from us this year!
HALLER / ADOBE STOCK
KICHIGIN19 / ADOBE STOCK
YEKO PHOTO STUDIO / ADOBE STOCK
KONSTANTIN SUTYAGIN / ADOBE STOCK
JACOB LUND / ADOBE STOCK
 

Peek Behind the Sneaks: Lose the Photobombers and Get the Perfect Shot with Monument Mode


Adobe
Ugh!  It happened again.  You had the perfect picture!  But then a group of tourists step into the shot.  Or a car drives by.  Or your annoying cousin photobombs you.  It’s hard to get the perfect shot.
But don’t worry.  Ashutosh Sharma, a senior computer scientist at Adobe, is on a mission to make it easy.  He’s created an app called Monument Mode that automatically detects and removes unwanted objects or people that happen to wander into your shot.
“I had the idea while I was traveling,” explains Ashutosh, “I like to take pictures of famous locations and viewpoints when I’m on vacation, but I noticed that when you’re at a popular spot, there’s always a lot of people around.”

Ashutosh demonstrated Monument Mode as part of the sneaks presentations at Adobe MAX 2015, and proved that getting a postcard-perfect shot can be as easy as point and shoot.  “Everything happens live right on the user’s screen,” says Ashutosh.  “You just hold your camera phone up to frame your photo, and any people or objects that are moving around disappear from the scene.  When you’re happy with the composition you simply click to take the photo.”
Monument Mode works by looking through frames captured during the live preview of your camera phone — those moments before you’ve clicked the button to take the shot.  By analyzing pixel changes in the scene over time, the app can detect what parts of the scene are dominant, and which parts are transient, then remove temporary objects from view.  The process takes just a few seconds, to a few minutes, depending on how long the photobombers are in the scene.
An example of a “photobomber” being removed from the live view of Monument Mode
It sounds simple, but there’s some serious software engineering happening behind the scenes. “The biggest challenge was trying to do this on a mobile device, and do it live.  We need to analyze a frame from live view every few milliseconds, and that requires a lot of computational power.  Fortunately, we were able to combine multiple optimizations within the app to make the most of the GPU. That speed is key for the user to get instant feedback on the screen and achieve the result they really want.”
Monument Mode is currently a concept technology and not yet available as a commercial app, but based on the reception it received at MAX, Ashutosh hopes to make it consumer-ready in the future.  He sees other possible applications for it as well.  “Since it works by analyzing dominant pixel values of a scene, we could potentially use it to remove noise (i.e., excessive graininess) from a photo after it’s been taken in a low-light situation, or perhaps even remove noise generated by the camera sensor itself,” he muses.
To learn more, check out coverage on Monument Mode in Engadget.
This story is part of a series that will give you a closer look at the people and technology that were showcased as part of Adobe Sneaks. Watch other Sneaks and videos here.

UTC #147


Adobe

The next UTC (Unicode Technical Committee) meeting, the 147th one, takes place during the week of May 9th, and will be hosted at the Adobe headquarters in San José, California. All members of the Unicode Consortium, especially voting members, are encouraged to attend.

As the Adobe host of UTC #147, I will need to arrange some of the logistics, and generally be available to assist attendees with their needs, such as printing documents. In addition, there are several documents that I have in the pipeline that will either need to be discussed or at least brought to the UTC’s attention during UTC #147:

PRI #318 is a proposed update for UAX #11 (East Asian Width) that is based on L2/16-027 (note that I am the editor of this Unicode Standard Annex)
L2/16-055 is the UTC’s review of IRG Working Set 2015 Version 1.1 (aka IRG N2133), which is what will eventually become Extension G
L2/16-063 is my document about the “PanCJK” IVD collection
L2/16-065 is a revised and reduced version of L2/15-328 that proposes to encode two Western-style tally marks

It is also the UTC meeting that takes place before Unicode Version 9.0, whose beta is underway as PRI #323, is released.
🐡

어도비 XD(Experience Design) 프리뷰 공개


Adobe

‘경험’의 가치는 두말할 나위 없이 중요합니다. 크리에이티브 전문가들이 창의적인 아이디어를 멋진 작품으로 승화시키기는 데 필요한 업계 선도적인 툴을 어도비가 제공하는 이유가 바로 여기에 있습니다. 콘텐츠의 기하급수적인 증가와 앱의 확산으로 소비자의 관심을 사로잡기 위한 경쟁은 전례가 없을 정도로 치열해지고 있으며 모바일과 웹 경험에 대한 소비자의 기대치 역시 그 어느 때보다 높아졌습니다.
자신이 직접 경험한 모바일 앱이나 웹을 한번 생각해 보십시오. 앱을 다운로드하거나 웹 사이트를 방문한 후 열악한 로그인 경험이나 인터페이스에 실망해 해당 앱 사용과 사이트 방문을 포기한 경험 있지 않으신가요? 빈약하고 조악한 앱 또는 웹 경험의 수명은 보통 짧지만 회사의 운명을 좌우한다는 점에서 매우 중요합니다.
이로 인해 크리에이티브 담당자들이 받는 압박은 매우 크며 사용자 경험(UX) 디자인이 급성장하는 크리에이티브 분야 중 하나로 새롭게 인식되고 있습니다. 어도비의 온라인 크리에이티브 커뮤니티인 비핸스(Behance)에 따르면 2015년 상호 작용 디자인(Interaction Design) 프로젝트가 52% 급증한 것으로 나타났으며, 이렇게 가파른 성장을 구가하고 있는 크리에이티브 분야는 그 어디에서도 찾아볼 수 없습니다.
어도비는 오늘 많은 이들이 기다리던 새로운 UX 디자인 및 프로토타입 솔루션인 어도비 익스피리언스 디자인 CC(Adobe Experience Design CC, 이하 어도비 XD) 프리뷰를 공개합니다. 어도비 XD는 디자이너가 사용자 경험을 디자인하고 프로토타입을 제작하는 데 도움을 주고 모바일 앱과 웹 사이트를 제작하는 디자인 커뮤니티에서 많은 분들이 학수고대하던 솔루션의 첫 번째 릴리스입니다. 2015년 10월 어도비 맥스에서 “프로젝트 코멧(Project Comet)” 이름으로 처음 선보인 어도비 XD의 프리뷰 버전을 제공하는 이유는 진화 중인 이 제품의 기능에 디자이너의 중요한 의견을 반영할 수 있도록 커뮤니티와 피드백을 공유하기 위함입니다. 어도비 XD는 어도비 ID를 가지고 있는 사용자라면 누구나 무료로 다운로드할 수 있으며, 첫 번째 상용 버전은 올해 하반기 어도비 크리에이티브 클라우드 멤버에게 제공될 예정입니다.
UX 분야의 많은 기업들이 UX 디자인의 발전을 이끌어 왔지만 어도비가 UX 디자인 툴을 한 차원 더 높은 수준으로 끌어올리는 데 기여할 수 있다고 믿고 있습니다.

올 인 원(All in One)

어도비 XD는 디자인하고 시제품을 만들고 공유하는 것을 하나의 시스템안에서 모두 할 수 있는 유일한 솔루션입니다. 수정이 필요할 경우, 실시간으로 적용되는 것을 확인할 수 있습니다.  수 없이 많은 버전의 디자인 파일 및 에셋을 갖고 여러 시스템을 오가며 작업할 필요가 이제 없습니다.

속도

어도비 XD는 대용량 파일이 포함된 대지(art boards)나 복잡한 프로젝트에서도 매끄럽게 스크롤하고 신속하게 이동 및 확대/축소할 수 있는 성능을 제공하며 툴 자체가 빠르고 가볍습니다. 모든 기능과 모든 의사 결정은 오직 최상의 고객 경험 제공을 위해서 존재합니다.

혁신

어도비 XD는 처음부터 디자인 커뮤니티와의 긴밀한 공동 작업을 통해 개발되었습니다. 모바일과 웹 디자인에 반복되는 항목을 빠르고 간편하게 추가하여 디자인할 수 있는 “그리드 반복(Repeat Grid)”과 같은 기능도 그 중 하나입니다.

연결된 크리에이티브

디자이너는 어도비 일러스트레이터 CC와 어도비 포토샵 CC와 같은 크리에이티브 클라우드 데스크톱 앱에서 기존 에셋을 손쉽게 가져올 수 있습니다. 디자인이 완성되면 어떤 기기에서든 한 번의 클릭만으로 손쉽게 시제품을 관계자들과 공유할 수 있고, 디자인이 확정되면 제작을 위해 개발자들에게 쉽게 보낼 수 있습니다. 현재 어도비는 크리에이티브 클라우드 라이브러리(Creative Cloud Libraries)와 어도비 스톡(Adobe Stock)과의 긴밀한 통합을 계획하고 있습니다.

우선 맥 OS에서 이용 가능한 첫 번째 프리뷰 버전은 시작에 불과합니다. 앞으로 정기적인 업데이트를 통해 여러 디바이스에 대한 지원도 추가할 계획이며, 윈도용 프리뷰는 가을에 선보일 예정입니다.
시선을 사로잡는 모바일 앱과 웹 경험을 디자인하는 데 필요한 기법과 기술의 중요성이 더욱 높아지면서 경험 중심의 디자인이 크리에이티브 전문가들에게 부담이 되고 있지만, 어도비 XD가 UX 디자이너의 작업 부담을 덜고, 보다 풍부한 경험을 만드는 데 일조할 수 있기를 바랍니다. 어도비 XD는 처음부터 어도비 팀과 디자인 커뮤니티 간에 긴밀하게 진행된 공동 작업의 산물이며, 앞으로도 계속 전 세계 크리에이티브 전문가와 협력해, 어도비 XD를 발전시켜 나갈 수 있기를 희망합니다.
신명섭 플러스 엑스(Plus X) 공동 창업자 겸 크리에이티브 디렉터는 “어도비 XD를 맥스 2015 행사에서 처음 접하게 되었는데, 당시 그 어떤 제품도 대적할 수 없는 잠재력을 느꼈습니다. 어도비 XD는 크리에이티브 클라우드(Creative Cloud)와의 통합을 통해 디자이너가 포토샵, 일러스트레이터와 같은 툴과 함께 원활하게 작업하고, 에셋을 공유하며 단일의 유저 인터페이스(UI)를 만들기 위해 공동 작업을 진행할 수 있도록 합니다. 얼마나 더 많은 발전을 했을지 정말 기대됩니다.”
본 블로그의 원문은 여기에서 확인할 수 있습니다.

5 Time-Saving Tax Tips

Adobe
It’s that time of the year again – the deadline to file taxes is quickly approaching. The process can be complicated, convoluted, and just plain crazy. But there’s no reason your taxes have to be taxing! Skip the post office lines and see how Acrobat DC can make your life easier this April:
 

1. Snap a picture of your receipts [0:08]
You pull apart your home, digging for receipts in all the nooks and crannies. You finally find them all, but the fun isn’t over: time to comb through and itemize all the information. Make this arduous task easier with Acrobat DC. Use your smartphone’s camera and the Acrobat Reader app to create a digital copy of your receipts, and never worry about losing a crucial piece of information again.
2. Create a digital tax folder in Adobe Document Cloud [0:30]
Securely store receipts and electronic statements for your accountant. Securely storing files in the cloud will give you instant access should something happen to your computer.
3. Digitize paper documents [0:54]
Is there anything more frustrating than standing in line at the post office? While we love the opportunity to stop and smell the roses/envelopes, some processes are better when they’re faster. Not all tax forms come to you digitally, but Acrobat DC can help you tackle files from your physical mailbox. Scan important tax paperwork to PDF and store it in your digital tax folder.
4. Send to accountant using secure Dropbox folder [1:16]
Good news: your accountant loves Dropbox just as much as you do. Instead of sending sensitive financial files over multiple emails, securely share your digital tax folder with the Acrobat DC Dropbox integration.
5. E-sign any necessary documents [1:37]
Even when you file your taxes electronically, there can still be some paperwork that requires a signature. Speed through paperwork by e-signing any necessary documents. Make the process a breeze by keeping it digital with Fill & Sign.

Not yet an Acrobat DC user? Sign up for our free 30-day trial.

Virtual Classrooms and Account Limit Reached Error


Adobe
This article is applicable ONLY to Adobe Connect users who have purchased a Named Virtual Classroom Manager license within the Training Module and are running into Account Limit Reached messages unexpectedly when they are launching Virtual Classrooms.
With the release of Adobe Connect 9.4 in May of 2015, we introduced a new training license model called the “Named Virtual Classroom Manager”.  This is specifically for Connect users to create and host Virtual Classrooms (plus it gives you access to the Events module).  It is basically another way we are licensing access to Virtual Classrooms.  This means there are technically two different types of Virtual Classrooms that can be created when you have the Training module enabled:

The ‘traditional’ model of Virtual Classrooms (VC) which use the Concurrent Learner seat quota on the account (up to 100 seats per room), and…
The Named Virtual Classroom Manager (NVCM) model of Virtual Classrooms which use a built-in 200 seat quota and does not use any Concurrent Learner seats.

When accounts are provisioned and quotas and features purchased, customers have the option of buying ONLY a Named Virtual Classroom Manager license.  They do not need to buy any additional training seats for Concurrent Learners.  In the older traditional model, in order to use a Virtual Classroom, you had to buy Concurrent Learner seats (say 250 seats for sake of discussion).  When a training manager created a VC, it would utilize seats out of that (in this example) 250 seat quota, up to 100 attendees (the rest of the concurrent seats could be used for another VC or other training content).  It was capped at 100 per VC.  With the new Named Virtual Classroom Manager license, you can now have only the NVCM feature enabled (and essentially have purchased no other training seats…so Concurrent Learner quota =0) or you can have it in conjunction with other training seats purchased in case you have a need for on-demand courses and curriculum, etc.. The NVCM model VC will not use any Concurrent Learner seats. It has a built-in 200 seat quota per room.  However, the caveat here is that the VC created for intended use with the NVCM model needs to have one of a few conditions in place in order to take on that NVCM model.  Otherwise, it may inadvertently take on the behavior of a traditional model VC and it could lead to unexpected circumstances like an ‘Account Limit Reached’ when the very first person joins the VC.
Let’s explain…
To create a Virtual Classroom, no matter what type of training features/quotas were purchased, all you need to be is a Training Manager, Named Virtual Classroom Manager, or Administrator.
The process of creating a VC is always the same.  You click on the “New Virtual Classroom” button from within the Training module.
Each time a Virtual Classroom is launched, Adobe Connect checks a few conditions to see how the VC should be licensed when it launches.  The result of which will dictate the quota used for the seats.  Where this becomes very problematic and confusing for customers is when the customer ONLY purchases a NVCM license and doesn’t have any Concurrent Learner seats (so Concurrent Learner = 0).  It is possible for a customer to create and launch a VC that is trying to use a Concurrent Learner quota by mistake.  If that happens, you will get the error ‘Account Limit Reached‘ right away.
For the sake of the scenarios below that explain how the VC’s are licensed when they launch, I will also mention that when a VC is created in a NVCM’s individual user folder under the Training tab, it automatically is a NVCM model room.  If it’s created under the Shared Training area of the Training tab, then there is a setting you can check or uncheck called ‘Named Virtual Classroom Model‘.

The value can either be Yes or No.  Below in the listed scenarios, that is what ‘set to yes’ or ‘set to no’ means.
Also below in the listed scenarios, a ‘NVCManager‘ is a person who is in the group ‘Virtual Classroom Managers’ in the Users and Groups area of Connect.  That is what gives that person the ability to utilize the NVCM model.  A ‘non-NVCManager‘ indicates someone who is NOT in that group.  This would be a normal Training Manager or Administrator.
Here are the conditions and scenarios (assuming the room is Public) where a VC can be launched with or without the 200 seat expected NVCM quota:
Green = NVCM is used and quota will be 200 seats
Red = traditional model is used and quota will be taken from Concurrent Learner seats and could result in an “Account Limit Reached” error if that quota is 0.
Orange = NVCM is used but there could be some confusion due to the lack of NVCM in the room or permissions for that NVCM.
Scenarios:

VC created in My Training folder by NVCManager – launched by NVCManager = Will use NVCM license (quota 200)
VC created in My Training folder by NVCManager – launched by non-NVCManager = Will use NVCM license (quota 200) however will not have the host present even if non NVCM who launched the room is a host (permission-wise).  A NVCM needs to be present for the room to have an initial host, similar to Named Host Meeting.  If the VC is ‘public’ as far as access level, it will launch and use the 200 seat quota for that owner, but if the owner isn’t in the room, the users who have entered will be participants.
VC created in Shared Training folder by NVCManager (set to yes) – launched by NVCManager = Will use NVCM license (quota 200)
VC created in Shared Training folder by NVCManager (set to yes) – launched by non-NVCManager = Will use NVCM license (quota 200) however will not have the host present even if non NVCM who launched the room is a host (permission-wise).  A NVCM needs to be present for the room to have an initial host, similar to Named Host Meeting.  If the VC is ‘public’ as far as access level, it will launch and use the 200 seat quota for that owner, but if the owner isn’t in the room, the users who have entered will be participants.
VC created in Shared Training folder by NVCManager (set to no) – launched by NVCManager = Will use NVCM license (quota 200)
VC created in Shared Training folder by NVCManager (set to no) – launched by non-NVCManager = Will use Traditional VC license (quota 100 taken from Concurrent Learners quota).  IF there is no quota for Concurrent Learners purchased, user will get ‘Account Limit Reached’ error.
VC created in Shared Training folder or My Training folder by non-NVCManager (set to yes) – launched by NVCManager = Will use NVCM license (quota 200)
VC created in Shared Training folder or My Training folder by non-NVCManager (set to yes) – launched by non-NVCManager – the room will behave like a Named VC and will use the 200 quota. But The room will not be owned by anyone, to be more precisely, there will not be an active host until an Named VC manager enters the room. Also all other non-NVCM hosts and presenters will be downgraded to participants until NVCM, who is assigned as a host, arrives.
VC created in Shared Training folder or My Training folder by non-NVCManager (set to no) – launched by NVCManager = Will use NVCM license (quota 200)
VC created in Shared Training folder or My Training folder by non-NVCManager (set to no) – launched by non-NVCManager  = Will use Traditional VC license (quota 100 taken from Concurrent Learners quota).  IF there is no quota for Concurrent Learners purchased, user will get ‘Account Limit Reached’ error.

So ultimately if you have purchased a NVCM license and you are expecting a VC to open and allow 200 seats, but you are getting an Account Limit Reached error either right away OR after a lower number of people access the room (so under 200), then most likely one of the situations above (in RED) has occurred.  To confirm, make sure that the creator of the room is in the NVCM group, the room exists inside of a NVCM’s My Training folder, the host launching the room is a NVCM, or at the very least the room has ‘YES’ set for the ‘Named Virtual Classroom License Model’ setting if the room is in the Shared Training area.

Introducing Adobe Experience Design CC (Preview)


Adobe
On behalf of the Project Comet team, I’m thrilled to let you know that Project Comet has become Adobe Experience Design CC (Preview), or Adobe XD as we refer to it. We’re making our first preview release for Mac OS available today, with a Windows version coming later this year. Everyone can use Adobe XD for free during the preview period – you can download it from Adobe.com or through the Creative Cloud desktop app.

While our team has been working to bring you Adobe XD for some time, this really represents the start of our journey to craft an end-to-end solution for experience design, one that Adobe is committed to undertaking in partnership with the UX design community. We’ve seen how designers think beyond just the visual design of a website or app, but also on optimizing and improving the overall user experience. You can read more about Adobe’s thoughts on Experience Design as a whole here.
For Adobe XD, we’ve received great input from over 5,000 designers as part of our pre-release program and are now excited to get your feedback on our public release as we continue working on Adobe XD.
Adobe XD makes it easy to undertake wire framing, visual design, interaction design, prototyping, previewing and sharing, by bringing together the tools you need for experience design into a single solution. We’re starting by delivering a basic set of tools in each of those areas, with the feedback we receive helping to determine the ultimate set of features that you need, while continuing to ensure we don’t compromise on delivering amazing performance and a comfortable design experience.
What’s in the public preview?
In this first preview release of Adobe XD you’ll find:

Focused design tools – create wireframes, screen layouts and production-ready artwork
Prototyping tools – define flows, triggers and transitions as part of your design
Built in sharing – create a video recording of your prototype or share a link to an interactive prototype hosted on Creative Cloud
Support for bringing in existing assets from Photoshop, Illustrator and Sketch
Blisteringly fast performance – create projects that bring together complex designs for web, mobile, tablet, watches and more, without any slow down.

As you get started with the preview release, be sure to check out the sample file available from the start screen, as well as our learn tutorials and documentation.

What’s still to come?
Being a preview release, we’re exposing a work-in-progress. This means you’re likely to find some gaps in the tools and likely wish for increased capabilities in a number of areas. We hope you’ll embrace the opportunity to join us on this exciting journey as we continue making progress on Adobe XD.
Based on the feedback we’ve already received, these are some of the areas that we’ve lined up to work on next:

Enhanced design features, including support for gradients, richer text, effects and blend modes
An improved color picker
Support for working with layers
More control over the sharing of prototype links
Authoring of scrollable content
Micro-interactions for prototyping
Real-time design preview and prototype testing on mobile devices (iOS and Android)
Reusability and sharing of design assets and styles, leveraging Creative Cloud libraries
An extensibility/API layer for plug-ins
Availability on Microsoft Windows 10 (preview release estimated for late 2016)

Our team will be delivering updates to Adobe XD every month, with a mix of new features, enhancements to existing features and bug fixes, so you’ll see us move fast to deliver these additional capabilities to you as part of Adobe XD.
Tell us what you think
Our team thrives on feedback and is passionate about our mission to deliver a product that experience designers want to use to design the next generation of digital experiences.
Tell us what you think on Twitter (@AdobeXD), share ideas with fellow designers in our forums and help shape the future of Adobe XD by submitting feature ideas or issues on our feedback site.
We spoke to a few designers in Asia Pacific on Adobe XD and this is what they had to say:

“The Adobe XD integration with Creative Cloud enables designers to work smoothly with tools like Photoshop and Illustrator, share assets and seamlessly work to build a single UI.” – Myungsup Shin, co-founder & creative director, Plux X, Korea
“Adobe XD begins to answer the challenges we’ve all faced when collaborating and prototyping at digital speed.” Chris Panzetta, MD,  S1T2, Australia
“In this fast-growing, high-demand digital transformation era,  Adobe XD quickly outputs realistic prototypes from UX designs.” – Bryan Chiang, UserXper Digital Consulting Co. Taiwan

About the author: Andrew Shorten
Andrew Shorten is Director of Product Management for UX Design at Adobe. He is passionate about improving the quality, richness, and value of digital experiences. Andrew previously developed user interfaces for government and enterprise customers while working at Fujitsu. He has since worked for Macromedia, Microsoft, and Adobe, where he has engaged with designers, developers, digital agencies, and organizations to help them deliver engaging web, mobile and desktop experiences.
 

現場で役立つ実践Sass(3)変数を使いこなす

Adobe
変数はSassで最も使う機能の一つです。
変数を使うことでコードの再利用性が高くなるため、モジュール化やMixinには欠かせない機能です。
第三回目の今回は、Sassの変数まわりの仕様とTipsを紹介します。
※今記事はRuby Sass 3.4.21で検証して書かれています。LibSassや、Sassのバージョンが違う場合は、コンパイル結果が異なる場合があります。

Sass変数とCSSネイティブ変数について
Sassの変数は、コンパイルされたCSSでは、その変数の値に書き換えられます。なので当然そのままCSSとして使用することができます。
そして、現在策定中なのがCSSでも変数が使えるようになる CSS Variables (CSS Custom Properties) という仕様です。
ブラウザ対応状況は Can I Use を参考ください。(掲載時はFirefox, Chromeが対応)
CSSネイティブの変数は、Sassの変数と仕様が若干違うので、Sassで使っていた変数を全てCSSネイティブの変数で置き換えることにはならなそうです。見比べてみましょう。
Sass変数について
変数名の先頭に $ をつけて定義します。そのまま属性の値として記述できますし、インターポレーション( #{} )を使えば、セレクタや文中にも配置することができます。
// コンパイル前(SCSS
$base-font: “Roboto”;
@import url(https://fonts.googleapis.com/css?family=#{$base-font}:400,700);

body {
font-family: $base-font, sans-serif;
}

// コンパイル後(CSS)
@import url(https://fonts.googleapis.com/css?family=Roboto:400,700);
body {
font-family: “Roboto”, sans-serif;
}

コンパイル後のCSSでは、Sassの変数は定義した値と置き換わります。
CSSネイティブ変数について
変数名の先頭に — をつけて定義し、 var(変数名) で呼び出します。
:root {
–main-color: #06c;
–accent-color: #006;
}
#foo h1 {
color: var(–main-color);
}
CSSネイティブ変数は、ブラウザが変数として認識するので、変数名がそのままCSSの値の位置に入ります。
Sassはネイティブ変数をそのままコンパイルできます。コンパイル前とコンパイル後の違いはありません。
// コンパイル前(SCSS)
:root {
–main-color: #06c;
–accent-color: #006;
}
#foo h1 {
color: var(–main-color);
}

// コンパイル後(CSS)
:root {
–main-color: #06c;
–accent-color: #006;
}
#foo h1 {
color: var(–main-color);
}
Javascript や calc と組み合わせて動的に使えるのがネイティブ変数の強みですね。
サイトカラーや、サイズの指定などにはネイティブの変数。モジュールにはSassの変数。と、用途に応じて使いわけることができそうです。
CSSネイティブ変数のブラウザサポートが広がって、実務でも使える日がくるのが楽しみです。
変数のスコープ
Sassの変数にもスコープがあります。スコープとは変数を参照できる範囲のことです。
Sassの変数はネスト(ブロック)ごとにスコープされます。
ネスト内に書かれているスコープは、「ローカル変数」となり、そのネスト以下で有効です。ネスト外から参照することはできません。
ブロック内で宣言されていない変数は「グローバル変数」となり、どの箇所からも参照できます。
$default-color: red; // グローバル変数を定義

.main-page {
color: $default-color; // グローバル変数なので参照できる
$main-color: tomato; // ローカル変数を定義
}

.campaign-page {
color: $main-color; // ローカル変数なので参照できない
}
数年前までのバージョンでは、ローカルスコープで同じ名前の変数を宣言すると、以降はグローバルの変数の値も変わってしまうため、ユニークな名前の変数を沢山作りましたが、現在はローカルスコープのみ変わるようになりました。
$default-color: red;

.main-page {
color: $default-color; // red
}

.campaign-page {
$default-color: tomato; //ローカルで同じ名前の変数宣言
color: $default-color; // tomato
}

.sub-page {
color: $default-color; // グローバル変数を参照するので red
}
同じモジュールでも特定のページだけ装いを変えたい時などに、ローカルスコープで変数を上書きする方法が有効です。
その為にもモジュールの設計の段階で、変数を取り入れましょう。
変数オプション
変数にフラグと呼ばれるオプションを付けると、変数の振るまいをコントロールすることができます。フラグは変数の値に続けて記述します。ここでは !global フラグと !default フラグの使い方を紹介します。
!global フラグ
!global フラグは、変数の宣言場所に関わらず、グローバル変数として値を上書きしたいときに使います。
$default-color: red;

.main-page {
color: $default-color; // red
}

.campaign-page {
$default-color: tomato !global; //!globalフラグでグローバル変数を上書き
color: $default-color; // tomato
}

.sub-page {
color: $default-color; // 上書きされたグローバル変数を参照するので tomato
}
!global フラグを宣言した行より後の変数に対して有効になります。
!default フラグ
!default フラグは、値の定義がない変数に使われる値を指定するためのフラグです。名前のとおりデフォルトの値です。
$default-color: red;

.main-page {
color: $default-color; // red
}

.campaign-page {
$default-color: tomato !default; // !defaultフラグを指定
$campaign-color: green !default; // !defaultフラグを指定

color: $default-color; // !defaultの前にグローバル変数が定義されているのでred
background-color: $campaign-color; // !default以外で変数が定義されていないのでgreen
}

.sub-page {
color: $default-color; // red
}
通常は、同名の変数がある場合、後に書かれた定義が優先されますが、!default フラグは優先されません。
モジュールなどで予め値を指定しつつ変更可能にしておく場合のように、上書きされる前提で !default フラグは使います。
変数には型がある
Sassの変数には、型(データタイプ)が存在しています。
現在、7種類に分類されサポートされます。

Number型
数値(単位含む)

String型
文字列

Colors型
色(カラーコード)

Boolean型
真偽値

Null型
空の値

List型
配列

Map型
連想配列

型については、つねに意識する必要はありませんが、Mixin や制御構文の際に理解しておくと、利便性が上がり、型の違いによって起こる予期せぬエラーを防ぐことができます。
型を確認する
型は type-of関数 で確認することができます。
// コンパイル前(SCSS)
.type-of {
$number: 100px;
$color: #f00;
$string: “文字列”;
$boolean: false;
$null: null;
$list: 10, 20, 30, 40;
$map: (a:0, b:1em, c:2em, d:3em);

//type-of関数で型を取得
content: “#{type-of($number)}”;
content: “#{type-of($color)}”;
content: “#{type-of($color)}”;
content: “#{type-of($string)}”;
content: “#{type-of($boolean)}”;
content: “#{type-of($null)}”;
content: “#{type-of($list)}”;
content: “#{type-of($map)}”;
}

// コンパイル後(CSS)
.type-of {
content: “number”;
content: “color”;
content: “string”;
content: “bool”;
content: “null”;
content: “list”;
content: “map”;
}
type-of関数と@if
type-of関数 と @if を組み合わせて、特定の型の場合のみ実行することができます。
$value1: 100px;
$value2: #f00;

.block {
// 型が数値だったときのみ実行される
@if type-of($value1) == number{
margin-top: $value1;
}
// 型が数値ではないので実行されない
@if type-of($value2) == number{
margin-top: $value2;
}
}
変数に誤った値が定義された際、実行させないといった使い方ができます。
Color型と色を扱う関数
Color型と色を操作する関数を組み合わせると一つの色から様々なカラーパターンを作成することができます。
$color-base: #666;

$color-darkest: darken($color-base, 45%); // black;
$color-darker: darken($color-base, 30%); // #1a1a1a;
$color-dark: darken($color-base, 15%); // #404040;
$color-light: lighten($color-base, 15%); // #8c8c8c;
$color-lighter: lighten($color-base, 30%); // #b3b3b3;
$color-lightest: lighten($color-base, 45%); // #d9d9d9;

上の例では lighten関数 と darken関数 を使いましたが、他にも彩度を調整するsaturate/desaturate関数 や、色相環を回す adjust-hue関数、補色の complement関数 などがあります。
詳しくは Sassドキュメント で確認ください。
List型と@each
List型(配列)は @each で便利に使えます。
例えば、下記のようにSNSアイコン画像を一括で指定して、コンパイル時に展開することができます。
// コンパイル前(SCSS)
$icons: twitter, facebook, googleplus, instagram;

@each $icon in $icons {
.icon-#{$icon} {
background-image: url(“img/#{$icon}.png”);
}
}

// コンパイル後(CSS)
.icon-twitter {
background-image: url(“img/twitter.png”);
}
.icon-facebook {
background-image: url(“img/facebook.png”);
}
.icon-googleplus {
background-image: url(“img/googleplus.png”);
}
.icon-instagram {
background-image: url(“img/instagram.png”);
}
アイコンの大きさが同じCSSスプライトであれば、index関数と組み合わせて下記のように位置指定に使うこともできます。
// コンパイル前(SCSS)
$icons: twitter, facebook, googleplus, instagram;
@each $icon in $icons {
// インデックスキーを取得
$index: index($icons, $icon);
// 高さを指定
$heigth: 50px;
// 2つ目から50pxずつ引いてゆく
$position: ($index * $heigth – $heigth) * -1;

.icon-#{$icon} {
background-position: left $position;
}
}

// コンパイル後(CSS)
.icon-twitter {
background-position: left 0px;
}
.icon-facebook {
background-position: left -50px;
}
.icon-googleplus {
background-position: left -100px;
}
.icon-instagram {
background-position: left -150px;
}
配列をひとつずつ取得したい場合は nth関数 を使います。
.twitter {
// リストの1番目を取得
content: “#{nth($icons, 1)}”; // twitter
}
Sassのインデックスキーは1から始まります。
Map型と@each
Map型(連想配列)とはList型にキーと値の組み合わせを定義したものです。
定義する場合は全体を丸括弧で囲い、キーと値のペアをカンマ区切りで指定します。
$icons:(
twitter: #55acee,
facebook: #3b5998,
googleplus: #dc4e41,
instagram: #3f729b
);
改行はなくても問題ありません。
Map型で @each をより便利に使えます。
例えば前述のSNSアイコンが背景色だった場合、以下のようにして複数のクラス指定を生成できます。
// コンパイル前(SCSS)
$icons:(
twitter: #55acee,
facebook: #3b5998,
googleplus: #dc4e41,
instagram: #3f729b
);

//キーとバリューをカンマで指定
@each $key, $value in $icons {
.icon-#{$key} {
background-color: $value;
}
}

// コンパイル後(CSS)
.icon-twitter {
background-color: #55acee;
}
.icon-facebook {
background-color: #3b5998;
}
.icon-googleplus {
background-color: #dc4e41;
}
.icon-instagram {
background-color: #3f729b;
}
連想配列から特定のキーに対応する値を取得したい場合は、map-get関数 を使います。
.facebook {
background-color: map-get($icons, facebook); // #3b5998
}

今回は簡単な例を紹介しただけですが、変数として定義しておくことで、仕様変更や、モジュール化なども柔軟に対応できます。
変数を定義している場所がバラバラだと、後々編集しづらいサイトになってしまうので、_var.scss のような変数用のパーシャルファイルを作成することをオススメします。
また、第一回で紹介したBracketsの SASShints など、変数を補完するエクステンションをエディタに入れるとより便利になるでしょう。

The Studio Launches Creative Careers in Silicon Valley


Adobe
The Bay Area in California is a celebrated hotbed of innovation and wealth.  However, it also harbors inequities amid rising poverty rates. Dedicated artists and organizations are working to increase access to educational opportunities and open doors to a better future.  The Studio at Silicon Valley Creates, AYV partner from the very beginning, is a leading hub for young aspiring creatives and changemakers, media educators, and professional artists to learn, collaborate, create, and share with one another.
“We have a great responsibility to provide opportunities to students interested in the arts.  They are the next generation of creatives and artists in our region, and it is critical that we engage them at a very young age.  The key to a vibrant city is a city that embraces art.” – Peter Pheap, Director of The Studio
AYV has its roots in San Jose, Adobe’s hometown, engaging educators and youth in powerful media making experiences through a network of organizations, such as The Studio at Silicon Valley Creates.  A great many young people have been inspired to produce video, write music, and create art on issues vital to them and their community – and they make an impact through the stories they tell, expertly facilitated by The Studio’s educators and mentors.  By tapping young artists’ creativity through partnerships with local arts, youth development, and community serving organizations, as well as local schools, colleges, and creative professionals, The Studio is cultivating the next generation of creatives and changemakers in Silicon Valley.
The Adobe Foundation is pleased to support the work of The Studio in providing creative youth development and promoting young people’s advancement in the creative fields.
What are the unique ways you inspire youth?
The Studio engages youth through a series of program modules distributed via our partners, phased over time and centered around learning, connecting, collaborating, creating, and sharing.  Project-based grants involve young creatives, media educators, and professional artists collaborating around a specific theme.  Our incentive-based contests and campaigns encourage young creatives to learn and create meaningful content on an issue they are passionate about solving.  Providing a platform for exhibiting and sharing work – through our social media channels, local film festivals, online film submissions and video channels, film camp screenings, and end of the year exhibition events – is a key motivational factor for creating.  We’re bringing professional artists into the classroom, through our partnership with Santa Clara County’s Office of Education, to reinforce, add value, and elevate what is being taught.  Our goal is to cater to classroom needs and also provide insight on a specific career path.  Further, our short-term apprenticeship program lets students gain real-world hands-on experience, build their portfolio, and create their own network.
How are you preparing youth to advance in the creative fields?
One of the biggest challenges for young aspiring creatives is learning how to navigate through the workforce and get hands-on experience in the field.  Whether it’s getting connected to the industry, finding a mentor that can move them to the next level, or acquiring hands-on experience in a professional setting, students often lack the network and/or resources to help them get to where they want to be.  We have the opportunity to address these challenges through a variety of programs that increase access and equity throughout the region. Our ultimate goal is to work hand-in-hand with our partners to provide as many opportunities as possible for youth, educators, and professional artists to learn, collaborate, and create with one another.
How will you leverage community partners to engage youth in pursuing creative careers?
By partnering with local high schools with creative electives, we can able to target students who might have interest in the creative fields and also learn about classroom needs from their teachers. In partnering with youth development organizations, we’ll be able to reach underserved and at-risk youth who have an interest in the creative fields and provide them with opportunities to engage in our programs. By teaming up with local colleges and students under the age of 24, we’re creating a pipeline for the next generation of professional artists that will eventually give back to younger students.
What is one of your favorite success stories?
Recently we held “The Studio Symposium,” connecting professional creatives in our region with talented high school students to lay a foundation for the next generation of creative entrepreneurs.
Overall, the day was a huge success, with more than 100 students from the Eastside of San Jose coming together to learn, collaborate, and connect with one another.  Our keynote speaker, Nick Mahar, put his college education on hold to pursue his dream of becoming a Director of Photography. His client list includes Macklemore & Ryan Lewis, Google, Pandora, The City of San Francisco, and many more. His story truly inspired the youth in the audience. Later students broke into different workshops, ranging from creatives in the film industry, start-up entrepreneurs, UI/UX designers, photographers, and more.  The goal of each workshop was not to teach them technical skills, but to share their journey of trials and tribulations in pursuit of their dreams.

One thing we know that’s really effective is setting up an environment where students get to learn directly from professional artists.  Our programs are designed to build that bridge between students and professional artists for learning and collaboration that creates excitement and opportunity for the future.   

Viva Las Vegas for SAP Ariba Live

Adobe
Are you heading to SAP Ariba LIVE? So are we!
What if every time you had to source goods, send an invoice, find a new supplier, or find a new customer, it wasn’t so complex? We’ve recently released a new version of the Adobe eSign services integration with Ariba Contract Management. Come see us at SAP Ariba LIVE 2016, March 14-16 in Las Vegas, to hear more about the updated solution and how it can help your team speed procurement cycles while improving compliance.
Learn more about the integration – stop by booth #28 to learn how the latest integration of Adobe eSign services and Ariba Contract Management can help you:

Cut contract signing time by 80%
Improve control and compliance
Reduce costs and eliminate paperwork

See you in Vegas!

Learn more about our integration with Ariba Contract Management.
New to eSign services? Start your free trial today!
Subscribe to keep up with all things Document Cloud.