Liquid Mode for Mobile Web Signing Experience


The Liquid Mode signing experience improves the display of your documents based on the recipient's device type, reducing the need to pinch and zoom and easily focus on the fields that need to be filled.

Liquid Mode compliant agreements are generated with two views for the recipient:

  1. PDF view that is created using all the styling information present in the uploaded HTML. This corresponds to the signed version of the agreement that is available for download – just like the PDF view Adobe Acrobat Sign generates for all agreements
  2. Liquid Mode view that reflows the input HTML document and is optimized for small screen sizes. The Liquid Mode view presents a highly curated experience that overrides the styling specified in the original HTML document

The interface allows your recipient to easily switch between the Liquid Mode and traditional PDF views of the document, depending on their preference and captures the same legally binding signatures that you expect.


Liquid Mode compliant agreements are created with a single HTML file as the source content.

There are a few restrictions on the HTML and form field constructs in the uploaded HTML document. Specifically:

  • the agreement must be created with a single HTML document (one file only)
    • If more than one document is used to create the agreement, only a PDF view is generated
  • the HTML document may not contain JavaScript. Use of <script> tags, either as inline JavaScript or as a reference to external JavaScript files, or in attributes of HTML tags are not allowed
    • If JavaScript is found in the HTML document, Acrobat Sign only creates the PDF view
  • the HTML document can only use the supported HTML tags in the <body> of the HTML document as described in the Supported HTML Tags section
    • If unsupported HTML tags are in the body of the HTML document, Acrobat Sign only creates the PDF view

As the Liquid Mode view has a very curated experience, CSS specified in the HTML file is ignored (ONLY for the Liquid Mode view) and only the attributes of the supported HTML tags will influence the Liquid Mode view. However, there are no such restrictions for the PDF view. Acrobat Sign uses the full gamut of attributes that are available for the supported tags as well as the CSS specified in the HTML document to generate the PDF view.

Adobe Acrobat Sign text tag notation is used to specify the form fields in the HTML document.

Liquid mode workflow


If the Liquid Mode feature is enabled but the Liquid Mode view can not be generated for any reason the agreement is created with the PDF view only.

The confirmation email sent to the sender will list the reasons why the Liquid Mode view could not be generated.

Liquid Mode is currently supported on mobile phone devices, with additional support in development.

Enable/Send Liquid Mode compliant agreements

  1. Ensure that Liquid Mode is enabled in the Acrobat Sign Admin menu:

    • Navigate to  Send Settings > Liquid Mode
      • The setting can be modified at the account or group level
    Navigate to Liquid Mode controls

  2. Submitting a single HTML file using one of the following means:

    Send HTML doc

Supported HTML Tags

To successfully create an agreement with the Liquid Mode view, the HTML document may NOT contain JavaScript constructs. 

Only the following tags can be used in the body of the HTML document:


HTML tags

Attributes that impact Liquid Mode view



<h1>, <h2>, <h3>, <h4>, <h5>, <h6>



Content Division








Horizontal Rule










src, alt, height, width

Please see section "Image Support"

Inline text

<b>, <i>, <u>, <s>, <strong>, <em>, <span>, <sub>, <sup>



Ordered List

<ol>, <li>

value, type, reversed, start


Unordered list

<ul>, <li>

value, reversed, start





URL protocol is restricted to http, https and mailto


<table>, <thead>, <tbody>, <tfoot>, <th>, <tr>, <td>, <caption>, <col>, <colgroup>


1.Nested tables are NOT supported

2.Form fields within tables are NOT supported

Form field label



Please see section “Form Field Labels”.

Form field grouping

<fieldset>, <legend>


Please see section “Labelling Groups of Fields”.



src, alt, height, width

The size of the image plus the entire HTML should be less than 400KB. The following formats are supported JPEG, PNG, GIF, BMP, and TIFF. The image source must be a HTTPs URL.

Form Field Specification

Form fields need to be specified in the HTML document using Adobe Acrobat Sign text tag notation.

The table below shows sample form fields using Acrobat Sign text tags:


Sign Text Tags

Signature Fields (Signature, Initials, Signature Block, Stamp)







Signer Fields





Sender Fields


Participation Stamp & Transaction ID



Read Only Field



Text Input





Radio Button







{{Color_es_:signer1:dropdown(options="Red,Green,B lue”, values=”R,G,B”)}}



File Attachment



{{Car_color_es:signer1:tooltip('Choose a color')}}

Digital Signature


Field Validation



Conditional Rules

e.g. {{field_es_:showif(price>60)}}

Calculated Fields



All Acrobat Sign form field constructs are supported except for the following:


Unsupported Constructs


Digital signature form field

:digitalsignature will not be supported

Prefill workflows

:prefill directive will not be supported.

Hyperlink form field

:page(N) directive will not be supported.

:link with protocols other than http, https and mailto.

:signer1 and :everyone directives will be supported.

Unnamed form fields

Unnamed form fields will not be supported.

Unnamed checkboxes will be supported

Renamed form fields

Multiple form fields with same name but different directives will not be supported

Form Field Labels

Each form field should have an associated label. Although labels are not mandated for every form field, it is highly recommended that form fields have labels.

Specifically, in Liquid Mode:

  • Labels are used to enhance the visual representation of the field
  • A label associated with a field provides accessibility hints. When a field has focus, a screen reader will use the label to announce the field to the user
  • A label can be clicked to set focus on a field, or in the case of a radio button or checkbox, clicking the label will toggle the value

Form fields can be bound to labels using the HTML <label> tag in one of the following ways:

  1. Acrobat Sign form field enclosed inside a <label> tag
    • <label>Signature: {{sig_es_:signer1:signature}}</label>
  2. The “for” attribute of the <label> tag can refer to the name of the form field to bind it to a form field.
    • {{sig_es_:signer1:signature}} … <label for=”sig”>Signature: </label>

Labels that cannot be bound with form fields by the above rules will be rendered as an unbound label text.

Additionally, Acrobat Sign text tags support the :label directive for the form fields types:

  • File Attachments
  • Hyperlinks
  • Checkboxes
  • Radio Buttons

The Acrobat Sign text tag :label directive and <label> tag can be combined in the following ways:

Form field type

Role of :label directive

Role of HTML <label> tag

File Attachments,


Specifies the label displayed inside the form field box.

<label> tag specifies the label or header for the form field.


Radio button option

Specifies the label or header for the form field.

If the Acrobat Sign text tag :label directive  is absent, <label> will take its place for the form field.

If both :label and <label> are present, Liquid Mode view will fail to create.


  • {{CB_es_:checkbox: signer1:label("I agree.")}}} <label for=” CB”> Yes</label>
  • {{(Red_v)Color_es_:signer1::label(“Red Color”)} <label for=”(Red_v)Color”>Red</label>

Labels can be specified for checkboxes in the following ways:

  • {{CB_es_:checkbox: signer1:label("I agree.")}}
  • <label> {{CB_es_:checkbox:signer1}} I agree.</label>
  • {{CB_es_:checkbox:signer1}} <label for="CB"> I agree.</label>

Labels can be specified for radio button options in the following ways:

  • {{(Red_v)Color_es_:signer1:label(“Red”)}}
  • <label> {{(Red_v)Color_es_:signer1}} Red </label>
  • {{(Red_v)Color_es_:signer1}} <label for=”(Red_v)Color”>Red</label>

Normally in HTML, the “for” attribute refers to a field id value.  Liquid Mode uses the “for” attribute to refer to field names.  This can cause ambiguity for cloned form fields -- where there are multiple instances of form fields with the exact same Acrobat Sign text tag directive.  In this case, we need to avoid using the “for” attribute and must associate labels by enclosing the text tag inside a <label> element.

For example, the following usage will create cloned form fields with different labels for each of the two instances in mobile reflow view:

  • <label> Official {{name_of_official_es_:signer1}} </label>
  • <label> Name {{name_of_official_es_:signer1}} </label>

If a cloned form field specifies a label using a "for" attribute, the references are ambiguous and cannot be resolved.  in this case, a Liquid Mode view will not be created.

 For example, the following usage will only create a PDF view:

  • <label for="name_of_official> Official </label> {{name_of_official_es_:signer1}}
  • <label for="name_of_official> Name</label> {{name_of_official_es_:signer1}}

Labelling Groups of Fields

Labels are associated with a single form field. When we want to associate a label/caption with a group of fields (notably, groups of radio buttons) we encourage the use of fieldset and legend elements.  The fieldset is used to group the elements, and the legend is used to provide a caption/label for the group.  Similar to label, the benefits in Liquid Mode are:

  • A better visual representation of a caption/heading associated with the group of fields
  • A good accessibility experience.  Screen readers will correctly announce the group of fields using the legend contents

For Example:


        <legend>Choose your favorite primary color</legend>             






For most documents, the author won’t want the default rendering of a fieldset. 

The bounding box can be removed with this CSS:

    fieldset {

        border: none;

        margin: 0;

        padding: 0;


Image Support

Images are supported with the following restrictions:

  • Only the <img> element is supported
  • The src of an <img> can be provided as embedded data (data: scheme) or as a web URL (https: scheme only)
  • The following formats are supported: JPEGPNGGIFBMP, and TIFF
    • For animated GIFs, the first frame will be used as a static image
  • The size of an image retrieved from a web URL is limited to 5 MB

Unsupported Acrobat Sign workflows

Liquid Mode does not support the following Acrobat Sign workflows:

  • Agreements created from multiple documents
  • Agreements created from non-HTML documents
  • Agreements created from library templates
  • Agreements created in DRAFT or AUTHORING state
  • Digital signature workflows
  • Written signature workflows
  • Modify in-flight workflows
  • Workflows from groups where the Preview checkbox is enabled by default
  • Agreements with signing reasons enabled
  • Agreements configured to challenge the signer to authenticate each time the signer clicks a signature field

An attempt to create a Liquid Mode view in the above workflows results in the creation of an agreement with the PDF view only.  The confirmation email sent to the sender lists the reasons why Liquid Mode could not be generated.

Liquid Mode error notification

If the sender tried to generate an agreement with a Liquid Mode view, but Acrobat Sign could not generate it, the sender is notified in the agreement confirmation email with the specific issues that prevented the creation of the Liquid Mode view. The sender can address the reported issues and attempt to create the agreement with a Liquid Mode view in subsequent attempts.

The reported issues can be grouped into the following categories:

  • Unsupported HTML constructs
  • Unsupported Acrobat Sign text tags
  • Unsupported Acrobat Sign workflows
  • Liquid Mode internal error

Liquid Mode internal errors occur when the server encounters unexpected error conditions while trying to create the Liquid Mode view.

For the other error categories, you can find details of the reported issues in the following sub-sections:

If the Liquid Mode view can not be generated due to unsupported HTML constructs, the confirmation email sent to the sender will include one or more of the following error strings:

Error strings

Unsupported element [+tagName]

Unsupported URL protocol [+url]

Form fields in tables are not supported [+tagName]

Nested tables are not supported

Invalid label child [+tagName]

See the section on Supported HTML tags for more information.

If the Liquid Mode view can not be generated due to unsupported Acrobat Sign text tag constructs, the confirmation email sent to the sender will include one or more of the following error strings:

Error strings

Unable to find definiton tag for reference [+shortName]

Prefill fields are not supported [+name]

Internal hyperlinks are not supported [+name]

Unnamed fields are only supported for checkboxes

Fields with the same name and different directives are not supported [+name]

Digital signatures are not supported [+name]

Fields may not have both a label element and label directive [+name]

Missing Sign form field for text tag: [+name]

See the section on Form Fields Specification for more information.

If the Liquid Mode view could not be generated due to unsupported Acrobat Sign workflows, the confirmation email sent to the sender will include one or more of the following error strings:

Error strings

Agreement is a library template

Agreement requires written signature

Agreement has CFR option of Signing reason enabled

Agreement has CFR option of ESign reauth enabled

See the section on Form Fields Specification for more information.

Sample HTML Document: Credit Report Request

Form qualities that are prime targets for Liquid Mode creation are:

  • documents that have large blocks of text that may require a lot of pinching and zooming
  • forms where there is no overlapping of fields, and the Liquid Mode flow of fields is acceptable


<!DOCTYPE html>

<html lang="en">



    <meta charset="UTF-8">

    <title>Sample Title</title>

    <link rel="stylesheet" href="css/all.css">


    body {

        font-family: Arial, Helvetica, sans-serif;

        font-size: 12px


    fieldset {

        border: none;

        margin: 0;

        padding: 0;



    legend {

        float: left;



    h2 {

        margin: 10px 0;

        font-size: 13px;

        margin: 20px 0 0 0;



    h3 {

        margin: 0;

        font-size: 12px;



    ul {

        margin: 0;



    li {

        margin-bottom: 3px;

        padding-left: 5px;



    p {

        margin: 4px 0;



    .header {

        border-bottom: 2px solid #000;

        margin: 0 5px 15px 5px;



    .header h1 {

        font-weight: 700;

        margin: 0;

        font-size: 15px;



    .body {

        border: 1px solid #000;

        padding: 0 5px 10px 5px;



    .page {

        padding: 0 25px;

        margin: 0 auto;



    .txt_logo {

        font-size: 30px;





    .textTag {

        padding: 9px 0;

        border-bottom: 2px solid #000;

        margin: 0 -4px 5px 0



    .underline {

        text-decoration: underline;

        font-weight: 700;

        font-size: 12px



    .columns-2 .item {

        width: 49%



    .columns-3 .item {

        width: 33%



    .item {

        display: inline-block



    .address .item {

        width: 16%



    .item.big {

        width: 30%



    .checkbox {

        margin: 15px 0



    .checkbox span {

        font-weight: 700;

        font-size: 11px



    .card-info label {

        width: 12%;

        font-size: 11px;

        text-transform: capitalize



    .card-info p {

        border-bottom: 1px solid #000;

        margin-right: 10px;


        display: inline-block



    .card-number {

        width: 40%;



    .expiry-date {

        width: 25%;



    .radio-button label {

        width: 55%



    .radio-button .item {

        width: 16%



    .note {

        font-size: 12px



    .footer {

        padding: 0 10px;

        font-size: 11px;






    <div class="page">

        <div class="header">

            <h2 class="txt_logo"><b>SAMPLE COMPANY</b></h2>

            <h1 class="h1_header">SAMPLE REQUEST TO OBTAIN MY FREE CREDIT REPORT </h1>


        <div class="body">

            <h3>Sample Important Information & Instructions:</h3>

            <p>In order to protect your personal information we will validate your identity before mailing your credit report to your <u>confirmed</u>

                home address. You must provide a photocopy of the front and back of:</p>

            <ul class="info">

              <li class="info__item">Two pieces of government-issued identification</li>

              <li class="info__item">If your address is not up-to-date on either identification, you <u>must also</u> provide an additional document showing your <u>current home address</u> (e.g. a utility bill).</li>

              <li class="info__item">If you provide your <b>Social Insurance Number</b>, we will cross-reference it with our records to ensure that we disclose the correct information to you. Knowing it helps us avoid delays and confusion in case another individual's identifying information (such as name and address) is similar to the one you provided.</li>

              <li class="info__item">If you provide a <b>credit card </b>statement or copy of your <b>credit card</b> as proof, please ensure to <b>blackout</b> your private information.</li>


            <p>The information you provide on the form will be used to confirm your identity and may also be used to update your credit report. Such updated information will be stored, safeguarded, used and/or disclosed in the normal course as part of your credit file. For more information about SAMPLE COMPANY’s privacy practices, please see our Privacy Policy at For clarity, in any case, we will keep a copy of the information you provide to demonstrate that we complied with our obligation to obtain reasonable identification from you.


            <p>Please send your completed form with proof of identity to: <b>Lorem inseam dolor sit amen, consenttetur</b>or by fax to: <b>XXX-XX-XXXX.</b>Kindly allow X-Y days for delivery. If any corrections to your credit report are necessary you must complete the Credit Report Update form enclosed with your package, or visit <a href="http://sampleurl">SampleURL</a> and click on “How to File a Something” under Our Sample Assistance.



        <div class="form">

            <div class="columns-3">

                <div class="item">

                    <p class="textTag">{{*LastName_es_:signer1}}</p>

                    <label for="LastName">LAST NAME </label>


                <div class="item">

                    <p class="textTag">{{*FirstName_es_:signer1}}</p>

                    <label for="FirstName">FIRST NAME, INITIAL</label>


                <div class="item">

                    <p class="textTag">{{Suffix_es_:signer1}}</p>

                    <label for="Suffix">SUFFIX (Sr., Jr., etc.)</label>



            <div class="address">

                <div class="item big">

                    <p class="textTag">{{*StreetAddress_es_:signer1&nbsp;}}</p>

                    <label for="StreetAddress">CURRENT STREET ADDRESS </label>


                <div class="item">

                    <p class="textTag">{{*Apt_es_:signer1}}</p>

                    <label for="Apt">APT.</label>


                <div class="item">

                    <p class="textTag">{{*City_es_:signer1}}</p>

                    <label for="City">CITY</label>


                <div class="item">

                    <p class="textTag">{{*Prov_es_:signer1}}</p>

                    <label for="Prov">PROVINCE</label>


                <div class="item">

                    <p class="textTag">{{*Zip_es_:signer1:zip}}</p>

                    <label for="Zip">POSTAL CODE</label>




            <div class="address">

                <div class="item big">

                    <p class="textTag">{{*StreetAddressPr_es_:signer1&nbsp;}}</p>

                    <label for="StreetAddressPr">PREVIOUS STREET ADDRESS </label>


                <div class="item">

                    <p class="textTag">{{*AptPr_es_:signer1}}</p>

                    <label for="AptPr">APT.</label>


                <div class="item">

                    <p class="textTag">{{*CityPr_es_:signer1}}</p>

                    <label for="CityPr">CITY</label>


                <div class="item">

                    <p class="textTag">{{*PrvPr_es_:signer1}}</p>

                    <label for="PrvPr">PROVINCE</label>


                <div class="item">

                    <p class="textTag">{{*ZipPr_es_:signer1:zip}}</p>

                    <label for="ZipPr">POSTAL CODE</label>




                <p class="textTag">{{*EmailAddress_es_:signer1:isemail}}</p>

                    <label for="EmailAddress">EMAIL</label>


            <div class="columns-2">

                <div class="item">

                    <p class="textTag">{{$DATEOFBIRTH}}</p>

                    <label for="Date">DATE OF BIRTH </label>


                <div class="item">

                    <p class="textTag">{{SocialSecurityNumber_es_:signer1:ssn}}</p>

                    <label for="SocialSecurityNumber">S.I.N.:</label>



            <div class="columns-2">

                <div class="item">

                    <p class="textTag">{{$NAMEMAJORCARD}}</p>

                    <label for="NameMajorCard">NAME OF MAJOR CREDIT CARD:</label>


                <div class="item">

                    <p class="textTag">{{$LAST4}}</p> <label for="Last4">LAST 4 DIGITS OF MAJOR CREDIT CARD:</label>



            <div class="columns-2">

                <div class="item">

                    <p class="textTag">{{*Signature_es_:signer1:signature}}</p><label for="Signature">Signature</label>


                <div class="item">

                    <p class="textTag">{{*DateOfSignature_es_:signer1:date}}</p><label for="DateOfSignature">Date</label>



            <div class="checkbox">

                 <label class="underline">{{$PAY}}  YES, I WOULD ALSO LIKE TO PURCHASE MY Sample Company SCORE* FOR $X.XX (tax included)</label>

            <legend> I authorize Sample Company to charge the payment to my credit card:</legend>

              <div class="radio-button">

                <div class="item"><label>{{$V}}Visa</label></div>

                <div class="item"><label>{{$M}}MasterCard</label></div>

                <div class="item"><label>{{$A}}AMEX</label></div>


            <div class="card-info">

                <label for="CardholderName">Cardholder Name:</label>



            <div class="card-info">

                <label for="CardNumber">Card Number:</label>

                <p class="card-number">{{*CardNumber_es_:signer1}}</p> <label for="ExpiryDate">Expiry Date:</label>

                        <p class="expiry-date">{{$EXPIRYDATE}}</p>


            <div class="note">

                <p>Note: Cheque and cash payments are not accepted. Cardholder’s name must be same as requestor’s name.</p>



        <div class="footer">

            <p>*Sample company’s XY is a product some service providers use when assessing applications for credit and services. It is not part of your sample credit report, but is based on the particular information in your credit file at the time it is calculated. Lorem Ipsem is not the same as the Lorem Ipsem, which is also used by some lenders. Sample Company will provide your sample report free of charge, whether or not you purchase your Lorem Ipsem. <b>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sample company can provide more sample services:</b> Sample Address Telephone: 1-XXX-XXX-XXXX Telephone in Sample: 1-XXX-XXX-XXXX</p>



    <!--  PAGE BREAK -->

    <div style="page-break-after:always"></div>

    <!-- SIGN Text Tag Definitions -->



    <!-- check box -->



    <!-- radio button and conditional rule to enable if Pay is checked -->





    <!-- drop down -->



    <!-- calculated field -->



    <!-- regular expression fromatting validation -->




    <!-- date validations -->








HTML Document in browser

Classic PDF View in Adobe Sign

Agreement view:

Liquid Mode view

Known Issues and FAQ

We recommend that as you author the HTML you test the html a few times and check that there are no errors and it meets the overall flow criteria for you before you send it to the intended recipients.

The HTML elements in the HTML document need to follow the document reading order. 

Page breaks in the document should be specified explicitly using the CSS property “page-break-after" like shown below:

<div style="page-break-after:always"></div>

Redesigning the document with reflow in mind might enhance the overall mobile experience. If you are NOT considering redesigning the document, you may want to adhere to the overall look and feel of the original PDF with a few exceptions:

  • There will be no special handling of page level artifacts in Liquid Mode. If page level artifacts like headers, footers, watermarks, etc. are present in the HTML document, they may show up in the reflow view in the middle of the reflowed content.

  • If the form includes instructions for filling the form fields like “PLEASE PRINT” or “OPTIONAL” or formatting instructions like “(mm/dd/yyyy)”, please do not include the text in the HTML – some of the info like formatting instructions “(mm/dd/yyyy)” or if a form field is “OPTIONAL” should be specified in the form field specification using text tags.  

  • Some text might require gathering composite sets of information. Splitting them into multiple form fields will simplify the use case. For example, in the above sample document, “NAME & LAST 4 DIGITS OF MAJOR CREDIT CARD’ has been split into “NAME OF MAJOR CREDIT CARD” and “LAST 4 DIGITS OF MAJOR CREDIT CARD”

  • Use only supported HTML tags listed above. Please see section on HTML constructs.

  • Use relative coordinates and placements like {width: 30%} so that the HTML can reflow to different device widths. Absolute page width should not be present in the CSS. 

  • If a PDF contains a table or list construct, the corresponding HTML representation should be a table or list respectively. The only exception is tables with form fields. If a table has form fields, the same information needs to be presented without tables.

To create a richer online form filling experience, it is highly recommended that form fields are authored using all the validations, formatting expressions and conditional rules and calculation formula that Sign text tags offer.

  • Names of form fields need to be unique if they are representing different entities
  • It is very highly recommended that each form field have a label by either enclosing the form field or using the “for” attribute
  • If a form field is OPTIONAL, it should be specified in the Sign text tags. For example:
    • {{*S.I.N_es_:signer1}} represents a required form field
    • {{S.I.N_es_:signer1}} represents an optional form field
  • Sign text tags provide a variety of validations for zip, ssn, date, email, currency numbers with range checks & max lengths and so on. Please use them
  • Sign text tags also Include formatting for form field like date format, currency format and so on. It is highly recommended that you use them
  • All checkboxes should have labels associated with them: For example:


  • If there are form fields that look like checkboxes in the paper/PDF form but have mutually exclusive values like Yes/No questions or Visa/MasterCard/AMEX question in this form, please combine all the form fields into a group make it into a form field of type radio button or dropdown instead of individual checkboxes and include a label/header     


<legend>Payment Options:</legend>





  • Sign text tags also define the dimensions of the form fields on the rendered page based on the dimensions of the rendered sign text tag on the page. Sign Text tag specification provides ways of shortening the form field dimensions. Please search for “Shortening Text Tags” and “Long Text Tags” in A common technique is to define a section at the end of the HTML document that contains the Definition Tags for the really long text tags and using the Reference Tags in the HTML body. Here is some sample Definition Tags:

<div style="page-break-after:always"></div>








Saņemiet palīdzību ātrāk un vienkāršāk

Jauns lietotājs?

Adobe MAX 2024

Adobe MAX
Radošuma konference

14.–16. oktobris Maiami pludmalē un tiešsaistē

Adobe MAX

Radošuma konference

14.–16. oktobris Maiami pludmalē un tiešsaistē

Adobe MAX 2024

Adobe MAX
Radošuma konference

14.–16. oktobris Maiami pludmalē un tiešsaistē

Adobe MAX

Radošuma konference

14.–16. oktobris Maiami pludmalē un tiešsaistē